正则表达式匹配日期

时间:2017-05-04 15:45:35

标签: regex

How to use REGEX patterns to return day of the week if a date is entered?类似,但我只是在寻找正则表达式的答案而不是“任何其他聪明的方法”。

什么是最简单的正则表达式来匹配一周中的特定日期,例如星期四从日期字符串格式为2017-05-04T10:14:07Z。

这就是我的起点。

2017-05-(04|11|18|25)T.*$

有没有办法在没有太多管道的情况下实现解决方案并涵盖所有可能的年份或至少在过去的十年?

1 个答案:

答案 0 :(得分:0)

首先,星期四不能从格式如2017-05-04T10:14:07Z的日期字符串中提取,因为"星期四"永远不会出现在字符串中。您可以捕获的最好的是2位数的日期数字(" 04")。

您可以获得日期编号(\d+-\d{1,2}-(\d{1,2})T.*?Z),但正则表达式无法验证当天的正确性。 (例如,对于一个随机的年份,你能否告诉我2月28日是否有效而没有列出每一个实例?)所以,只有这样,如果您接受的日子可能无效(或来源永远是正确的)