哪个正则表达式更快

时间:2012-04-11 11:52:38

标签: pcre

我正在使用PCRE |^/foo/(.*?)(?::(?:bar)?)?$||^/foo/(.*?)(?::bar)?:?$|这将是替换,因此我们希望在进行替换时从最后删除::bar。我知道这两者并不完全相同,但这里并不重要。

1 个答案:

答案 0 :(得分:1)

我会使用第一个,因为它只需检查:一次。第二个可以匹配:bat的前三个字符,然后再进行回溯,然后再次检查:。此外,第二个可以匹配:bar:而第一个不能匹配。实际的速度差异很小。第二种方式更好地写为/^\/foo\/(.*?)(?::bar|:)?$/

尽量不要使用正则表达式元字符作为分隔符!