Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的正则表达式从右向左解析_Python_Regex - Fatal编程技术网

Python中的正则表达式从右向左解析

Python中的正则表达式从右向左解析,python,regex,Python,Regex,在python中有没有从右向左解析正则表达式的方法 我有几个巨大的正则表达式,在我的输入上运行大约需要一秒钟,总运行时间只有几分钟。因此,我尝试测试我的正则表达式的性能,并有一个从右到左解析正则表达式的选项,由于更快的失败,导致执行速度加快了大约一百万倍。是的,方法是反转字符串(并根据新字符串编写模式): 字符串: 'John likes to eat mushrooms'[::-1] 模式(约翰怎么样?): 您还可以将re模块更改为提供反向搜索标志的: (注意此功能,作为.net Rig

在python中有没有从右向左解析正则表达式的方法


我有几个巨大的正则表达式,在我的输入上运行大约需要一秒钟,总运行时间只有几分钟。因此,我尝试测试我的正则表达式的性能,并有一个从右到左解析正则表达式的选项,由于更快的失败,导致执行速度加快了大约一百万倍。

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

字符串:

'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']