| ■No85128 (夜叉丸 さん) に返信 > X=(?<X>.+?) と X=(?<x>.+) は結果的に同じなのでしょうか? 前者のグループ名は "X" ですが、 後者のグループ名は "x" ですね。
> ? があるのとないのとでの違いが判りません。 (?<X>何某) の方の "?" だとしたら、グループ名をつけるためのものです。 .+? の方の "?" だとしたら、最短一致を意味します。
string text = "X=12,Y=34,Y=56,Z=78"; var m1 = Regexes.Match(text, "Y=(?<y>.+?)"); var m2 = Regexes.Match(text, "Y=(?<y>.+)"); var m3 = Regexes.Match(text, "Y=(?<y>[^,]+)");
たとえば上記の場合、下記の結果となります。
m1[0].Groups["Y"].Captures[0].Value == "3" m1[1].Groups["Y"].Captures[0].Value == "5" m2[0].Groups["Y"].Captures[0].Value == "34,Y=56,Z=78" m3[0].Groups["Y"].Captures[0].Value == "34" m3[1].Groups["Y"].Captures[0].Value == "56" |