我应该在运行Regex.Replace之前使用Regex.IsMatch

时间:2015-03-19 09:44:27

标签: c# regex optimization

我试图使用正则表达式,正则表达式确实有其性能下降,即使它已经编译。

我想知道的是,在实际运行Regex.Replace之前,如果使用Regex.IsMatch在字符串中匹配,我应先检查一下吗?

这个问题是关于优化和性能的。

1 个答案:

答案 0 :(得分:3)

根据我的评论,性能问题通常通过在您的环境中进行尝试并客观地进行测量来回答。然而,这是非常明确的,并且基于替换必须进行匹配的预感,我们可以去inspect the source code。我们在Replace方法中看到,在检查参数后它首先执行的是执行匹配:

match = regex.Match(input, startat);

这表明是的,在进行替换之前检查是否匹配可能是浪费时间。