如何在python中反转正则表达式?

Abu*_*nat 5 python regex reverse

我的正则表达式如下

    text = 'id 5 result pass
            id 4 result fail
            id 3 result fail
            id 2 result fail
            id 1 result pass'

    for i in re.finditer('id (.+?) result (.+)', text): 
         id = i.group(1)
         result = i.group(2)
         print 'id' 
         print 'result' 
Run Code Online (Sandbox Code Playgroud)

输出正常。但是,如何将其反转以另一种顺序获得结果,其中id将以1的开头通过或失败结果

Hen*_*nyH 6

一个好方法是(比使用lambda排序中的a更快):

sorted(re.finditer(...,text),key=attrgetter('group'),reverse=True):
Run Code Online (Sandbox Code Playgroud)

或者,您可以将迭代器转换为列表并将其反转:

for i in reversed(list(re.finditer('id (.+?) result (.+)', text))): 
Run Code Online (Sandbox Code Playgroud)