python regex:获取命名组的名称

Eul*_*lie 5 python regex

我有这样的事情:

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

如果我正在查看匹配对象,我真的不感兴趣匹配哪个特定文本,我只想知道它是group1还是group2

groupdict()给我这样的东西:

$ match.groupdict()
$ {'group1': None, 'group2': 'DDD'}
Run Code Online (Sandbox Code Playgroud)

现在,当然,我可以通过迭代dict来发现它是group2,但是如果我有很多匹配要检查的话,那似乎很慢.是否有更直接的方式来获取组名?(Python 2.7)

DSM*_*DSM 8

也许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'
Run Code Online (Sandbox Code Playgroud)