| ■No85010 (魔界の仮面弁士 さん) に返信 > 2017/09/05(Tue) 11:36:37 編集(投稿者)
>>ra.ToString() = "{X=3, Y=6, Width=9, Height=12}" >>Match m = new Regex(@"{X=(?<X>[-]*\d+),Y=(?<Y>[-]*\d+),Width=(?<Width>[-]*\d+),Height=(?<Height>[-]*\d+)}").Match(ra.ToString()); > > これではヒットしないと思いますよ。元の文字列が > "{X=3, Y=6, Width=9, Height=12}" ではなく > "{X=3,Y=6,Width=9,Height=12}" であったのなら、 > m.Groups["X"] で拾えるでしょうけれども。
Rectangle ra = new Rectangle(3,6,9,12); です。確認したら"{X=3,Y=6,Width=9,Height=12}"でした。
> 単純には > [+-]?[0-9]+[.]?[0-9]([eE][+-])?[0-9] > などが思い当たります。 例外はハンドルされていませんとなります。 System.ArgumentException:'解析中 "{X~(?<X>[+-]?[0-9]+.]?[0-9]([eE]・・・・・
RectangleF raf = new RectangleF(3f, -6.2f, 9.3f, 12.4f); Match f = new Regex(@"{X=(?<X>[+-]?[0-9]+[.]?[0-9]([eE][+-])?[0-9])," + "Y=(?<Y>[+-]?[0-9]+[.]?[0-9]([eE][+-])?[0-9])," + "Width=(?<Width>[+-]?[0-9]+[.]?[0-9]([eE][+-])?[0-9]))," + "Height=(?<Height>[+-]?[0-9]+[.]?[0-9]([eE][+-])?[0-9]))}").Match(raf.ToString());
|