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

本文关键字:正则表达式 字符串 替换 | 更新日期: 2023-09-27 18:11:34

是否可以使用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 = newId;
    }
    return source;
}

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

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

有人能看出我错在哪里吗?

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

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

http://msdn.microsoft.com/en-us/library/cft8645c.aspx