C# 替换字符串中的正则表达式匹配项

C# 替换字符串中的正则表达式匹配项,c#,regex,C#,Regex,是否可以使用正则表达式替换每个匹配的值?如下所示: public static string TestMethod(string source) { var regexToMatch = new Regex("[MY_REGEX_STRING]"); foreach (Match Id in regexToMatch.Matches(source)) { var newId = GetIdFromSource(source); Id.Value = ne

是否可以使用正则表达式替换每个匹配的值?如下所示:

public static string TestMethod(string source)
{
    var regexToMatch = new Regex("[MY_REGEX_STRING]");

    foreach (Match Id in regexToMatch.Matches(source))
    {
    var newId = GetIdFromSource(source);
    Id.Value = newId;
    }

    return source;
}
在我的c#代码中,当找到匹配项时,我将调用一个返回新id的方法,并希望用新id替换旧id,然后返回更新的
源代码

我得到了正确的匹配,只是不知道如何替换它们


有人知道我哪里出错了吗?

据我所知,您希望运行一些代码为每个匹配生成替换字符串。在这种情况下,使用MatchEvaluator的Regex Replace方法就是您想要的。将为每个匹配调用MatchEvaluator,并可以提供替换字符串


这是什么语言?现在您正试图为Id分配一个值,但它是只读的。你能给我们一个输入和输出的例子吗?复制:
GetIdFromSource(source)
将正确返回相同的值!。。如果是这样,您可以用一条语句来完成,即
regex.replace