我知道在正则表达式的括号开始处放置
?:
可以防止它创建一个反向引用,从而提高速度。我的问题是,为什么要这样做?速度的增加足以值得考虑吗?在什么情况下,它会很重要,以至于每次都要小心地跳过不使用反向引用?另一个缺点是它使正则表达式更难以阅读、编辑和更新(如果您最终想要使用反向引用)。因此,总之,为什么要费心地不创建反向引用?
re
模块的许多问题,但是无论如何,您往往会看到与正则表达式边角情况相关的故障模式可能是O(2 ** n)最坏情况。 - Mike Samuel