日期正则表达式产生错误输出



我需要找到模式与 Python 中的日期格式匹配的文件。有人可以帮我吗?我有一个正则表达式,但它没有按要求工作。

date = '2012-01-15'
match = re.findall(r'^(19|20)dd[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$', date)
print match

输出:

[('20', '01','15')]

似乎您刚刚错过了整个年份匹配周围的一对括号,您可能想用 ?: 来抑制世纪匹配:

match = re.findall(r'^((?:19|20)dd)[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$', date)
#                     ^ ^^          ^

这为您的示例提供了[('2012', '01', '15')]

最新更新