正则表达式 - 非分组和条件块不匹配

时间:2016-08-11 22:44:55

标签: python regex

我有这种模式:

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

2 个答案:

答案 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")