让我说我有一些文本有很多单词"查找"的实例,我想用"Replace1","Replace2","Replace3"等文本替换它.数字是"查找"的出现次数文本.如何在C#中以最有效的方式做到这一点,我已经知道了循环方式.
A MatchEvaluator
可以做到这一点:
string input = "FindbcFinddefFind", pattern = "Find"; int i = 1; string replaced = Regex.Replace(input, pattern, match => "REPLACE" + i++);
请注意,match
变量也可以访问Match
等等.使用C#2.0,您需要使用匿名方法而不是lambda(但效果相同) - 以显示以下内容Match
:
string input = "FindbcFinddefFind", pattern = "Find"; int i = 1; string replaced = Regex.Replace(input, pattern, delegate(Match match) { string s = match.Value.ToUpper() + i; i++; return s; });