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

Should i use Regex.IsMatch before running Regex.Replace

我正在尝试使用正则表达式,而正则表达式即使经过编译也确实存在性能问题。

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

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

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

match = regex.Match(input, startat);

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