我有这样的事情:

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

如果我正在寻找一个匹配对象,那么我对匹配哪个特定文本并不十分感兴趣,我只想知道它是group1还是group2

groupdict()给我这样的东西:
$ match.groupdict()
$ {'group1': None, 'group2': 'DDD'}

现在,当然,我可以通过遍历dict来发现它是group2,但是如果我要检查很多匹配项,这似乎很慢。
是否有更直接的方法来获取组名? (Python 2.7)

最佳答案

也许 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'

关于python - Python正则表达式: get name of named group,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23552571/

10-12 16:03