2013-04-30 123 views
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的方法,并希望取代旧用新,然后返回更新了source

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

任何人都可以看到我要去哪里错了吗?

+0

这是什么语言? – m0skit0 2013-04-30 11:02:54

+0

语言是C#:) – 2013-04-30 11:03:52

+0

现在你正试图给Id分配一个值,但它是只读的。你能给我们一个例子输入和输出吗? – 2013-04-30 11:07:17

回答

2

从我的理解,你想运行一些代码来为每个匹配生成替换字符串。在这种情况下,使用MatchEvaluator的正则表达式替换方法就是您想要的。每次比赛都会调用MatchEvaluator,并且可以提供替换字符串。

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