我有这种模式:
>>> pat = r'(?:.*)?(name)|nombres?'
当我测试时:
>>> import re
>>> re.search('nombre', pat).group()
>>> 'nombre'
>>> re.search('name', pat).group()
>>> 'name'
但是
>>> re.search('first_name', pat).group()
>>> *** AttributeError: 'NoneType' object has no attribute 'group'
答案 0 :(得分:2)
您的参数顺序错误。模式首先出现。
答案 1 :(得分:1)
正如已经回答的那样,参数是交换的,它应该是:
re.search(pat, 'first_name').group()
我还要说在尝试提取群组匹配之前,您可能想要检查模式是否实际匹配:
result = re.search(pat, 'first_name')
if result:
print(result.group())
else:
print("not found")