让我说我有一些文本有很多单词"查找"的实例,我想用"Replace1","Replace2","Replace3"等文本替换它.数字是"查找"的出现次数文本.如何在C#中以最有效的方式做到这一点,我已经知道了循环方式.
A MatchEvaluator可以做到这一点:
string input = "FindbcFinddefFind", pattern = "Find";
int i = 1;
string replaced = Regex.Replace(input, pattern, match => "REPLACE" + i++);
Run Code Online (Sandbox Code Playgroud)
请注意,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;
});
Run Code Online (Sandbox Code Playgroud)