在Python中使用正则表达式从右到左解析

时间:2014-08-01 23:29:25

标签: python regex

有没有办法在python中从右到左解析正则表达式?

我有几个巨大的正则表达式需要大约一秒钟来运行我的输入,总运行时间为几分钟。所以我试着测试我的正则表达式的性能,regexhero有一个从右到左解析正则表达式的选项,这导致执行速度提高了大约一百万倍,因为更快失败。

1 个答案:

答案 0 :(得分:5)

是的,方法是反转字符串(并根据新字符串编写模式):

string:

'John likes to eat mushrooms'[::-1] 

模式(像约翰一样?):

r'^(.+) sekil nohJ$'

您还可以将re模块更改为提供反向搜索标记(?r)的{​​{3}}:

>>> import regex
>>> regex.findall(r'(?r)\w+(?=\W+\w*e)', 'John likes to eat mushrooms')
['to', 'John']

(照顾此功能,如.net RightToLeft选项,结果可能违反直觉。)