有没有办法在python中从右到左解析正则表达式?
我有几个巨大的正则表达式需要大约一秒钟来运行我的输入,总运行时间为几分钟。所以我试着测试我的正则表达式的性能,regexhero有一个从右到左解析正则表达式的选项,这导致执行速度提高了大约一百万倍,因为更快失败。
答案 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选项,结果可能违反直觉。)