谁的正则表达式更快? python或perl

时间:2012-01-30 03:34:37

标签: python regex perl

我在维基页面http://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines

中看到了

python使用非递归实现作为grep和sed,而perl使用简单的草书impl。这是否表明python的正则表达式性能比perl更快?

2 个答案:

答案 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)