죄송합니다. 어리석은 질문 일 수 있습니다.하지만 조금 문제를 해결할 수 없으며 Google에서 같은 질문을 찾을 수 없습니다. 그래서, 나는 여기에 쓸 줄 알았다.C# regex groups trouble
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}");
}
}
그러나 출력은 다음과 같습니다 왜 이해할 수 없다 :
이string line = "HELLO MYNAME IS1 = {P 111.11, O -222.22, L 333.33, L -444.44, Y 555.55}";
이에 대한 나의 코드는 다음과 같습니다
경기 :
없음 0 나는 같은 문자열을 구문 분석 할 필요가 값 : 안녕 내 이름 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