正则表达式从字符串问题中选择匹配

时间:2011-06-30 02:47:17

标签: regex string c#-4.0

为什么正则表达式为匹配返回多个值?

请参阅以下代码,它应该只返回一个结果。为什么有两个?

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 个答案:

答案 0 :(得分:3)

只有一个匹配m,它有一个捕获组。 m.Groups[0]始终是整场比赛。 m.Groups[1]是第一次捕获等。

如果您想查看所有匹配项,可以执行以下操作:

foreach (Match m in regex.Matches (input))
   Console.WriteLine (m.Value);