2013-04-30 98 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