我试图使用正则表达式,正则表达式确实有其性能下降,即使它已经编译。
我想知道的是,在实际运行Regex.Replace
之前,如果使用Regex.IsMatch
在字符串中匹配,我应先检查一下吗?
这个问题是关于优化和性能的。
答案 0 :(得分:3)
根据我的评论,性能问题通常通过在您的环境中进行尝试并客观地进行测量来回答。然而,这是非常明确的,并且基于替换必须进行匹配的预感,我们可以去inspect the source code。我们在Replace
方法中看到,在检查参数后它首先执行的是执行匹配:
match = regex.Match(input, startat);
这表明是的,在进行替换之前检查是否匹配可能是浪费时间。