使用lambda表达式替换正则表达式匹配

6

我正在寻找一个简单的正则表达式查找及替换解决方案,可以只提供用于替换每个匹配项的lambda表达式。例如:

regex.MatchReplace(text, match => "replacement string");

这样我就可以创建自己的逻辑来生成替换字符串,可能涉及调用各种方法等操作,即使用替换模式无法完成的事情。有人知道我该如何实现这个吗?

1
Regex已经有了带有MatchEvaluatorReplace重载。你为什么需要自己的呢?regex.Replace(text, match => "replacement string") 应该对你有用。 - user4003407
谢谢。不确定我是如何忽视那个的。 - Pking
2个回答

8
正则表达式已经有一个。例如,
string input="abc123def";
var output = Regex.Replace(input, @"\d", m=>(m.Value[0]-'0'+ 5).ToString());
Console.WriteLine(output);

输出:abc678def


0

抱歉没有表达清楚,我是在寻找扩展方法的实际实现。 - Pking
1
很抱歉,我手头没有示例。你自己尝试过了吗?如果你发布你现有的解决方案,你更有可能得到答案。 - 3-14159265358979323846264
我正在开发一个解决方案——它需要进行两次匹配——第一次是为了存储所有的匹配,第二次是为了遍历并替换。我认为对于这样一个基本的操作,可能已经有高效的解决方案可用了。 - Pking

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接