Regular Expressions 匹配日期
示例
您应该记住,正则表达式是为匹配日期(或不匹配)而设计的。说一个日期是有效的,这是一个复杂得多的工作,因为它将需要大量的异常处理(请参阅leap年条件)。
让我们首先将月份(1-12)与可选的前导0相匹配:
0?[1-9]|1[0-2]
要匹配日期,还可以选择带前导0:
0?[1-9]|[12][0-9]|3[01]
并匹配年份(假设范围1900-2999):
(?:19|20)[0-9]{2}分隔符可以是空格,破折号,斜杠,空白等。可以随意添加任何您感觉可以用作分隔符的内容:
[-\\/ ]?
现在,您将整个事情串联起来并得到:
(0?[1-9]|1[0-2])[-\\/ ]?(0?[1-9]|[12][0-9]|3[01])[-/ ]?(?:19|20)[0-9]{2} //MMDDYYYY
(0?[1-9]|[12][0-9]|3[01])[-\\/ ]?(0?[1-9]|1[0-2])[-/ ]?(?:19|20)[0-9]{2} //DDMMYYYY
(?:19|20)[0-9]{2}[-\\/ ]?(0?[1-9]|1[0-2])[-/ ]?(0?[1-9]|[12][0-9]|3[01]) //YYYYMMDD如果您想变得学究一些,可以使用向后引用以确保两个分隔符相同:
(0?[1-9]|1[0-2])([-\\/ ]?)(0?[1-9]|[12][0-9]|3[01])\2(?:19|20)[0-9]{2} //MMDDYYYY
^ refer to [-/ ]
(0?[1-9]|[12][0-9]|3[01])([-\\/ ]?)(0?[1-9]|1[0-2])\2(?:19|20)[0-9]{2} //DDMMYYYY
(?:19|20)[0-9]{2}([-\\/ ]?)(0?[1-9]|1[0-2])\2(0?[1-9]|[12][0-9]|3[01]) //YYYYMMDD
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语