2014-05-08 54 views
4

的名字,我有這樣的事情:蟒蛇正則表達式:獲得命名組

$ pattern = re.compile('(?P<group1>AAA|BBB|CCC)|(?P<group2>DDD|EEE|FFF)') 

如果我在看比賽的對象我不是很感興趣,其特定的文本被匹配,我只是想知道如果是1或組2

groupdict()給了我這樣的:現在

$ match.groupdict() 
$ {'group1': None, 'group2': 'DDD'} 

,當然,我可以找出它的第2組僅通過遍歷字典,但似乎如果慢一世 有很多比賽來檢查。 有沒有更直接的方法來獲取組名? (Python 2.7)

回答

6

也許lastgroup

>>> pattern = re.compile('(?P<group1>AAA|BBB|CCC)|(?P<group2>DDD|EEE|FFF)') 
>>> m = pattern.search("AAA") 
>>> m.lastgroup 
'group1' 
>>> m = pattern.search("DDD") 
>>> m.lastgroup 
'group2' 
+0

嗯,我現在對我的問題有點羞怯,答案看起來很簡單x)謝謝! – Eulelie