0

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

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 替换旧的,然后返回更新的source.

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

谁能看到我哪里出错了?

4

1 回答 1

2

据我了解,您想运行一些代码来为每个匹配项生成替换字符串。在这种情况下,您需要使用带有 MatchEvaluator 的 Regex Replace 方法。每次匹配都会调用 MatchEvaluator,并且可以提供替换字符串。

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

于 2013-04-30T11:26:50.437 回答