我在维基页面
http://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines中看到了
python使用非递归实现作为grep和sed,而perl使用简单的草书impl.这是否表明python的正则表达式性能比perl更快?
解决方法
这不是一个直接的答案,因为Python诉Perl正则表达式问题的答案似乎是“它取决于”.
如果你担心正则表达式的速度,你应该考虑一些事情.一种是使用普通搜索并在可能的情况下替换正则表达式.
另一种是使用Google’s re2 module,它有多种语言的好包装.根据我的经验,re2比Python中内置的re模块快60%,而且它特别闪耀的是“病态”正则表达式,这可能比你使用内置模块所需的时间长得多.在开发re2的Russ Cox的论文中,here解释了所有这些以及更多内容.
在Python中,我使用并且可以保证pyre2是re2的包装器,它可以作为re的替代品. CPAN搜索显示re::engine::RE2似乎在Perl中提供相同的功能.