如何匹配和捕获在C#中的正则表达式
答
这里是什么,我认为你的例子所要求的:
Match m = Regex.Match("something some stuff in the middle someotherthing",
"something (.*) someotherthing");
if (m.Success)
Console.WriteLine("groups={0}, entire match={1}, first group={2}",
m.Groups.Count, m.Groups[0].Value,
m.Groups[1].Value);
答
哪些地方可以使用$1
获得该组中,您可以使用$0
让整个表达式。
这适用于大多数正则表达式变体(可能是\0
或%0
或其他),而不仅仅是C#。
同样,Match.Groups property应该以0作为参数,返回整个匹配,否则Capture.Value看起来像包含匹配。
另外值得一提的,以确保您的测试字符串的整个则表达式匹配,它通常是前面加上^
和后缀与$
这对于开始和字符串的结尾零宽度位置锚是个好主意。 (也启动/在多行模式行尾。)