Python中的正则表达式从右向左解析
在python中有没有从右向左解析正则表达式的方法Python中的正则表达式从右向左解析,python,regex,Python,Regex,在python中有没有从右向左解析正则表达式的方法 我有几个巨大的正则表达式,在我的输入上运行大约需要一秒钟,总运行时间只有几分钟。因此,我尝试测试我的正则表达式的性能,并有一个从右到左解析正则表达式的选项,由于更快的失败,导致执行速度加快了大约一百万倍。是的,方法是反转字符串(并根据新字符串编写模式): 字符串: 'John likes to eat mushrooms'[::-1] 模式(约翰怎么样?): 您还可以将re模块更改为提供反向搜索标志的: (注意此功能,作为.net Rig
我有几个巨大的正则表达式,在我的输入上运行大约需要一秒钟,总运行时间只有几分钟。因此,我尝试测试我的正则表达式的性能,并有一个从右到左解析正则表达式的选项,由于更快的失败,导致执行速度加快了大约一百万倍。是的,方法是反转字符串(并根据新字符串编写模式): 字符串:
'John likes to eat mushrooms'[::-1]
模式(约翰怎么样?):
您还可以将re模块更改为提供反向搜索标志的:
(注意此功能,作为.net RightToLeft选项,结果可能会违反直觉。)不确定,但这可能会有帮助,不,在
re
或regex
模块中没有这方面的内容。net支持它,所以它是可行的,所以我必须重写所有正则表达式?听起来没那么好。@mbomb007:不,你不能那样做$John likes)+。(^
对,我总是忘记括号。为什么,python正则表达式没有从右到左的搜索?它会影响性能。@keramat:AFAIK,只有这个模块和.net语言正则表达式有这个功能。
r'^(.+) sekil nohJ$'
>>> import regex
>>> regex.findall(r'(?r)\w+(?=\W+\w*e)', 'John likes to eat mushrooms')
['to', 'John']