我正在使用PCRE |^/foo/(.*?)(?::(?:bar)?)?$|
或|^/foo/(.*?)(?::bar)?:?$|
这将是替换,因此我们希望在进行替换时从最后删除:
和:bar
。我知道这两者并不完全相同,但这里并不重要。
答案 0 :(得分:1)
我会使用第一个,因为它只需检查:
一次。第二个可以匹配:bat
的前三个字符,然后再进行回溯,然后再次检查:
。此外,第二个可以匹配:bar:
而第一个不能匹配。实际的速度差异很小。第二种方式更好地写为/^\/foo\/(.*?)(?::bar|:)?$/
尽量不要使用正则表达式元字符作为分隔符!