如何从C#中的捕获函数捕获值

问题描述:

我想在C#中使用Capture函数捕获值时遇到问题。 我的代码在字符串中查找很多模式,所以我使用匹配集合,然后对于每个匹配我使用Capture函数。但是当我想替换captureOut.value时,它不起作用。如何从C#中的捕获函数捕获值

我的代码:

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不起作用。

+3

你能重新澄清你想要做什么吗?也许提供一些输入字符串的例子以及你想要的结果是什么? – JLRishe

只有在正则表达式中有组时,即使用()中包含的正则表达式部分,使用捕获属性才有意义。 由于你的正则表达式没有,只有一个捕获组,它是与正则表达式匹配的整个字符串。