说我有以下正则表达式并搜索
e = r"(?P<int>\d+)|(?P<alpha_num>\w)"
num = re.search(e, "123z")
letter = re.search(e, "z123")
我知道num.group("int")
提供123
而num.group("alpha_num")
提供None
。
同样letter.group("int")
给None
和letter.group("alpha_num")
给z
但是,我想要的是获得任意匹配的“命名类别”的方法。
所以,如果我有任意匹配,比如说new_match,我可以调用new_match.named_category()
,它会返回“int”或“alpha_num”,具体取决于匹配方式。
是否存在任何此类命令或是否必须创建自己的命令?
谢谢!
答案 0 :(得分:1)
对于问题中的具体示例,您可以使用lastgroup:
>>> import re
>>> e = r"(?P<int>\d+)|(?P<alpha_num>\w)"
>>> num = re.search(e, "123z")
>>> letter = re.search(e, "z123")
>>> num.lastgroup
'int'
>>> letter.lastgroup
'alpha_num'