使用python正则表达式匹配日期
我要匹配具有以下格式的日期:
2010-08-27、2010 / 08/27
现在,我对实际可行的日期不是很确定,只是日期格式正确。
请告知正则表达式。
谢谢
回答:
您可以使用datetime
模块来解析日期:
import datetimeprint datetime.datetime.strptime('2010-08-27', '%Y-%m-%d')
print datetime.datetime.strptime('2010-15-27', '%Y-%m-%d')
输出:
2010-08-27 00:00:00Traceback (most recent call last):
File "./x.py", line 6, in <module>
print datetime.datetime.strptime('2010-15-27', '%Y-%m-%d')
File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data '2010-15-27' does not match format '%Y-%m-%d'
因此,捕获ValueError
将告诉您日期是否匹配:
def valid_date(datestring): try:
datetime.datetime.strptime(datestring, '%Y-%m-%d')
return True
except ValueError:
return False
为了允许使用各种格式,您可以测试所有可能性,或者re
先解析字段:
import datetimeimport re
def valid_date(datestring):
try:
mat=re.match('(\d{2})[/.-](\d{2})[/.-](\d{4})$', datestring)
if mat is not None:
datetime.datetime(*(map(int, mat.groups()[-1::-1])))
return True
except ValueError:
pass
return False
以上是 使用python正则表达式匹配日期 的全部内容, 来源链接: utcz.com/qa/411110.html