为什么正则表达式为匹配返回多个值?
请参阅以下代码,它应该只返回一个结果。为什么有两个?
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 . . .
答案 0 :(得分:3)
只有一个匹配m
,它有一个捕获组。 m.Groups[0]
始终是整场比赛。 m.Groups[1]
是第一次捕获等。
如果您想查看所有匹配项,可以执行以下操作:
foreach (Match m in regex.Matches (input))
Console.WriteLine (m.Value);