栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python正则表达式匹配日期

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python正则表达式匹配日期

与其使用正则表达式,不如将字符串解析为

datetime.datetime
对象通常更好:

In [140]: datetime.datetime.strptime("11/12/98","%m/%d/%y")Out[140]: datetime.datetime(1998, 11, 12, 0, 0)In [141]: datetime.datetime.strptime("11/12/98","%d/%m/%y")Out[141]: datetime.datetime(1998, 12, 11, 0, 0)

然后,您可以访问日,月和年(以及小时,分钟和秒)作为

datetime.datetime
对象的属性:

In [143]: date.yearOut[143]: 1998In [144]: date.monthOut[144]: 11In [145]: date.dayOut[145]: 12

要测试用正斜杠分隔的数字序列是否表示有效日期,可以使用一个

try..except
块。无效的日期将引发
ValueError

In [159]: try:   .....:     datetime.datetime.strptime("99/99/99","%m/%d/%y")   .....: except ValueError as err:   .....:     print(err)   .....:        .....:     time data '99/99/99' does not match format '%m/%d/%y'

如果您需要搜索更长的字符串以获取日期,则可以使用正则表达式来搜索以正斜杠分隔的数字:

In [146]: import reIn [152]: match = re.search(r'(d+/d+/d+)','The date is 11/12/98')In [153]: match.group(1)Out[153]: '11/12/98'

当然,无效日期也将匹配:

In [154]: match = re.search(r'(d+/d+/d+)','The date is 99/99/99')In [155]: match.group(1)Out[155]: '99/99/99'

要检查

match.group(1)
返回的日期字符串是否有效,您可以使用
datetime.datetime.strptime
上图所示的方法对其进行解析。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506551.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号