私は申し訳ありませんが、愚かな質問かもしれないが、私はほとんど問題を解決することはできませんし、Googleで同じ質問を見つけることができません。だから、私はここに書くと思った。私は同じ文字列を解析する必要があります。C#正規表現グループの問題
string line = "HELLO MYNAME IS1 = {P 111.11, O -222.22, L 333.33, L -444.44, Y 555.55}";
をそのための私のコードは次のとおりです。
string line = "HELLO MYNAME IS1 = {P 111.11, O -222.22, L 333.33, L -444.44, Y 555.55}";
Regex re = new Regex(@"^HELLO MYNAME ([A-Za-z0-9]+) = {([A-Z]\s[+-]?[0-9]+.[0-9]+,?\s?)+}");
MatchCollection matchCollection = re.Matches(line);
foreach(Match m in matchCollection)
{
Console.WriteLine("Match: ");
foreach(Group gr in m.Groups)
{
Console.WriteLine($"No {gr.Index} Value: {gr.Value}");
}
}
しかし、出力は次のようになりますなぜ私が理解することはできません。
マッチ:
ありません0値:HELLO MY NAME IS1 = {P 111.11、O -222.22、L 333.33、L -444.44、Y 555.55} No 13値:IS1 No 62値:Y 555.55
もう一度申し訳ありませんが、最後のグループだけが結果に行く理由を私に説明できますか?
[(?:^ HELLO MYNAME(\ w +)= {| \ G(?!A)\ s *、\ s *)([AZ] \ s [+ - ]?\ d + \。\ d +) '](http://regexstorm.net/tester?p=%28%3f%3a%5eHELLO+MYNAME+%28%5cw%2b%29+%3d+%7b%7c%5cG%28 %3f!%5cA%29%5cs%%2c%5cs%%29%28%5ba-Z%5d%5cs%5b%2b-%5d%3f%5cd%2b%5c。%5cd%2b%29&i = HELLO + MYNAME + IS1 +%3d +%7bP + 111.11%2c + O + -222.22%2c + L + 333.33%2c + L + -444.44%2c + Y + 555.55%7d) – ctwheels