我正在尝试检索避免生成错误消息的输出“AttributeError:'NoneType'对象没有属性'group'”。我认为错误是由于“matchObj”的输出为“None”。底部是我的代码。
def processCcDtMdyStamp(datestamp):
matchObj = re.match(r'^(\d+)/(\d+)/(\d+)\s', datestamp)
(month, day, year) = (matchObj.group(1), matchObj.group(2), matchObj.group(3))
return "%s/%s/%s" % (month, day, year)
if __name__ == '__main__':
print(processCcDtMdyStamp(' 1/6/2015 '))
什么是有效输入(datestamp)而不是'1/6/2015'? 提前谢谢。
答案 0 :(得分:0)
re.match()
将在字符串的开头匹配,因此^
是多余的。另外,考虑使用re.search()
代替,因为模式不限于字符串的开头,你可以匹配数字和斜杠。\s?
,或者在应用正则表达式之前修剪空格。>>> import re
>>> datestamp = ' 1/6/2015 '
>>> matchObj = re.search(r'(\d+)/(\d+)/(\d+)', datestamp)
>>> matchObj.group(1)
'1'