两种正则匹配日期年月日

使用正则表达式匹配字符串中所有的日期信息
匹配年月日日期格式:2018-12-6 (数字第一位不为0)
注意年的范围是1-9999, 月的范围是1-12, 日的范围是1-29或者1-30或者1-31(不考虑闰年)

import re
# 方法一:三种月份分开正则
re_str = r'[1-9]\d{,3}-((2-([1-9]|[12]\d))|(([13578]|1[02])-([1-9]|[12]\d|3[01]))|(([469]|11)-([1-9]|[12]\d|30)))'
print(re.fullmatch(re_str, '1997-11-30'))

# 方法二:三种月份公共日份一起正则,再分别正则30和31日的月份
re_str = r'[1-9]\d{,3}-((([1-9]|1[012])-([1-9]|[12]\d))|(([13578]|1[02])-3[01])|(([469]|11)-3[01]))'
print(re.fullmatch(re_str, '1999-4-31'))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值