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

C# 我应该在运行Regex.Replace之前使用Regex.IsMatch吗,c#,regex,optimization,C#,Regex,Optimization,我正在尝试使用正则表达式,即使是编译的正则表达式,它的性能也会下降 我想知道的是,在实际运行Regex.Replace之前,我是否应该首先使用Regex.IsMatch检查字符串中是否有匹配项 这个问题是关于优化和性能的。根据我的评论,性能问题通常通过在您的环境中尝试并客观地测量来回答。然而,这是相当明确的,并且基于替换人员无论如何都必须进行匹配的预感,我们可以继续。我们看到在Replace方法中,它在检查参数后做的第一件事就是执行匹配: match = regex.Match(input, s

我正在尝试使用正则表达式,即使是编译的正则表达式,它的性能也会下降

我想知道的是,在实际运行
Regex.Replace
之前,我是否应该首先使用
Regex.IsMatch
检查字符串中是否有匹配项


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

根据我的评论,性能问题通常通过在您的环境中尝试并客观地测量来回答。然而,这是相当明确的,并且基于替换人员无论如何都必须进行匹配的预感,我们可以继续。我们看到在
Replace
方法中,它在检查参数后做的第一件事就是执行匹配:

match = regex.Match(input, startat);

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

大多数性能问题的答案是“在您的环境中尝试,客观地测量并查看”。但是,在这种情况下,我想在执行替换之前找出正则表达式是否匹配是浪费时间的,因为它在替换中要做的第一件事就是再次匹配它。我的猜测是否定的,在regex.replace之前调用regex.IsMatch实际上会减慢执行速度。但是既然你已经有了代码,为什么不测试它来确定呢?