首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证使用regex日期提取的数据是真实的。

问验证使用regex日期提取的数据是真实的。
EN

Stack Overflow用户
提问于 2022-08-08 11:54:28
回答 1查看 37关注 0票数 0

我有一个从字符串中提取日期的正则表达式。但它没有考虑到没有30吨的二月,例如。如何使用Python来验证提取的日期,而不让正则表达式变得更复杂?

这是我的正则表达式:^(?:(1[0-2]|0?[1-9])(\,|\.|\/)(3[01]|[12][0-9]|0?[1-9])|(3[01]|[12][0-9]|0?[1-9])(\,|\.|\/)(1[0-2]|0?[1-9]))(\,|\.|\/)(?:[0-9]{2})?[0-9]{2}$

要测试(DD{分离器}MM{分离器}(YY)YY格式)的示例:

  • 01.12.21
  • 31.3.22
  • 12.12.-判决在这里不起作用
  • 31/12/22
  • 28.02.2021
  • 29,02,2020
  • 30.02.2003
  • 29.02 -正则表达式在这里不起作用
  • 9912/12/200199 -正则表达式在这里不起作用
  • 测试02-06-13-正则表达式在这里不起作用。
EN

回答 1

Stack Overflow用户

发布于 2022-08-08 12:13:14

在显示的示例中,请尝试使用Python3编写和测试的regex。我在这里使用过re Python3库。然后在其中使用findall函数并启用re.M(多行)标志。以下是上述正则表达式的在线演示。

代码语言:javascript
复制
import re

var="""
01.12.21
31.3.22
12.12.
31/12/22
28.02.2021
29,02,2020
30.02.2003
29.02
9912/12/200199
test02-06-13
"""


re.findall(r'^((?:0[0-9]|1[0-9]|2[0-9]|3[0-1])(?:\.|\/|,)(?:0?[0-9]|1[0-2])(?:\.|\/|,)(?:[0-9]{2,4}))$',var,re.M)
['01.12.21', '31.3.22', '31/12/22', '28.02.2021', '29,02,2020', '30.02.2003']

这里要提到的一件重要事情是,这个正则表达式只使用显示的示例创建和测试(稍后将进行更多的测试),而且对于年度检查,它只检查2到4位数的范围,以防您想要检查或比较特定的范围,那么我们需要在这个示例中进行调整。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73277480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档