регулярное выражение для выбора совпадения в строке - PullRequest
1 голос
/ 30 июня 2011

почему регулярное выражение возвращает мульти-значение для совпадения?

См. Следующий код, он должен возвращать только один результат.почему их два?

e.g 
Match m = Regex.Match("[Red] #,0.00 \"Ex\"", @"^\[(RED|GREEN|ORANGE)\]", RegexOptions.IgnoreCase);

            if (m.Success)
            {
                Console.WriteLine(m.Groups.Count);    
                Console.WriteLine(m.Groups[0].Value);
                Console.WriteLine(m.Groups[1].Value);
            }
            else
                Console.WriteLine("No match");

========Result===============
2
[Red]
Red
Press any key to continue . . .

1 Ответ

3 голосов
/ 30 июня 2011

Существует одно совпадение m, в котором есть одна группа захвата. m.Groups[0] всегда весь матч. m.Groups[1] - первый захват и т. Д.

Если вы хотите увидеть все матчи, вы можете сделать это:

foreach (Match m in regex.Matches (input))
   Console.WriteLine (m.Value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...