c#regex.replace vs regex.matches

时间:2016-11-29 05:50:06

标签: c# regex algorithm

我很难决定使用哪一个,要么使用Regex.Replace要么使用Regex.Matches,如果你必须在每个匹配上执行一些逻辑来生成替换值。

场景:读取文件(大小可能不同),然后使用正则表达式替换匹配项。每个匹配的替换值是不同的,并且由某些逻辑生成。

方法1:阅读完整的文件,然后查找所有匹配项,然后我执行foreach或for循环并逐个替换它们。

方法2:读取完整文件,然后将Regex.Replace方法与MatchEvaluator一起使用,其中MatchEvaluator函数执行逻辑并返回替换值。

我想在这里链接一篇文章,它以某种方式给我一种不使用的感觉,Regex.Replace。链接:https://blogs.msdn.microsoft.com/debuggingtoolbox/2008/04/02/comparing-regex-replace-string-replace-and-stringbuilder-replace-which-has-better-performance/

1 个答案:

答案 0 :(得分:0)

方法1:

  • 这会读取整个文件。 (检查内存消耗。
  • foreach循环播放大数据,(更耗时。

方法2:

  • 这也会读取整个文件。
  • MatchEvaluator非常确定需要更多时间

方法3: