我应该在 运行 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);
这表明是的,在进行替换之前检查是否存在匹配可能是浪费时间。
我正在尝试使用正则表达式,而正则表达式即使经过编译也确实存在性能问题。
我想知道的是,在 运行 Regex.Replace
之前,我是否应该先检查字符串中是否有使用 Regex.IsMatch
的匹配项?
这个问题是关于优化和性能的。
根据我的评论,性能问题通常可以通过在您的环境中尝试并客观地进行测量来回答。然而,这是非常明确的,并且基于无论如何都必须进行匹配的替换的预感,我们可以去 inspect the source code。我们看到在 Replace
方法中,它在检查参数后做的第一件事就是执行匹配:
match = regex.Match(input, startat);
这表明是的,在进行替换之前检查是否存在匹配可能是浪费时间。