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