如果在正则表达式中找不到特定字符,如何在 group() 中打印出 None ?第一个捕获组应该返回 None 或“S”,但我在 print(t.groups()) 中返回 None 时遇到问题。
rx = r'^([S])([Nn]+)([m])([f]|[d])$'
t = re.match( rx , 'NNmf' )
print( t.groups() )
这是我迄今为止尝试过的,也使用 '?:' 用于未编号的捕获组,希望它会返回 'None' 但没有运气。
(None , ' NN ' , ' m ' , ' f ' )
结果应该在上面,目前我收到“AttributeError: 'NoneType' object has no attribute 'groups'”。
任何建议将不胜感激!
“S”必须被标记为可选字符。由于您的搜索一开始就锚定,您应该改用re.match
:
re.match('(S)?([Nn]+)(m)(f|d)$', 'NNmf').groups()
# (None, 'NN', 'm', 'f')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句