有效输入以避免错误(使用re:match)

2024-05-16 12:33:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试检索输出,以避免生成错误消息“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 '))

什么是有效输入(日期戳)而不是“1/6/2015”? 提前谢谢。你知道吗


Tags: 对象代码none消息属性错误groupyear
1条回答
网友
1楼 · 发布于 2024-05-16 12:33:25
  • ^{}将在字符串的开头开始匹配,因此^是多余的。另外,考虑改用^{},因为这样模式就不局限于字符串的开头,只需匹配数字和斜杠即可。你知道吗
  • 因为您的输入在开头有空格,而您的模式没有,所以它找不到匹配项。如果可能有空格,可以考虑在模式的开头和结尾使用\s?,或者在应用regex之前修剪空格。你知道吗

>>> import re
>>> datestamp = ' 1/6/2015 '
>>> matchObj = re.search(r'(\d+)/(\d+)/(\d+)', datestamp)
>>> matchObj.group(1)
'1'

相关问题 更多 >