Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在正则表达式组中返回None?_Python_Regex - Fatal编程技术网

Python 如何在正则表达式组中返回None?

Python 如何在正则表达式组中返回None?,python,regex,Python,Regex,如果在正则表达式中找不到特定字符,如何在groups()中打印None?第一个捕获组应该返回None或“S”,但我在打印时无法返回None(t.groups()) 这就是我到目前为止所尝试的,也使用了“?:”作为未编号的捕获组,希望它返回“无”,但没有运气 (None , ' NN ' , ' m ' , ' f ' ) 结果应该如上所述,目前我得到的是“AttributeError:'NoneType'对象没有属性'groups'” 任何建议都将不胜感激 “S”必须标记为可选字符。由于您的搜

如果在正则表达式中找不到特定字符,如何在groups()中打印None?第一个捕获组应该返回None或“S”,但我在打印时无法返回None(t.groups())

这就是我到目前为止所尝试的,也使用了“?:”作为未编号的捕获组,希望它返回“无”,但没有运气

(None , ' NN ' , ' m ' , ' f ' )
结果应该如上所述,目前我得到的是“AttributeError:'NoneType'对象没有属性'groups'”

任何建议都将不胜感激

“S”必须标记为可选字符。由于您的搜索是在开始时定位的,因此应改为使用
re.match

re.match('(S)?([Nn]+)(m)(f|d)$', 'NNmf').groups()
# (None, 'NN', 'm', 'f')

像这样,正则表达式将与字符串不匹配。您可能希望使用
将第一个组设置为可选组。很抱歉,这是我的误解,一切都很正常。谢谢你的帮助!答案的意思是,如果您使用
match
而不是
search
,则
^
是隐含的,因此您不需要明确指定它。如果出于某种原因希望正则表达式更长,您仍然可以将其放在那里。
re.match('(S)?([Nn]+)(m)(f|d)$', 'NNmf').groups()
# (None, 'NN', 'm', 'f')