当我想在C#中使用Capture
函数捕获值时,我遇到了问题。
我的代码在字符串中查找许多模式,因此我使用匹配集合,然后对于每个匹配我使用Capture
函数。但是,当我想要替换captureOut.value
时,它不起作用。
我的代码:
MatchCollection matches = Regex.Matches(string, @"\d*\.*\d+\s")
foreach (Match matchOut in matches)
{
foreach (Capture captureOut in matchOut.Captures)
Match match1 = Regex.Match(captureOut.Value, @"\d*\.*\d+");
::::: //}
output = Regex.Replace(output,captureOut.Value, Function1);
}
// i change the value of pattern based on the output of function 1
这部分代码,我不知道为什么capture out.value
不起作用。
答案 0 :(得分:1)
只有在正则表达式中有组,即正则表达式的部分用()括起来时,才使用capture属性。 由于你的正则表达式没有,只有一个被捕获的组,它是与正则表达式匹配的整个字符串。