问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

正则表达式 日期

发布网友 发布时间:2022-04-30 23:15

我来回答

2个回答

热心网友 时间:2022-04-23 07:04

最简单的正则 如 : \d{4}-\d{2}-\d{2}
但是实际情况却不是那么简单,,要考虑,有效性和闰年等问题.....

对于日期的有效范围,不同的应用场景会有所不同。MSDN中定义的DateTime对象的有效范围是:0001-01-01 00:00:00到9999-12-31 23:59:59。

UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z。

先考虑与年份无关的前三条规则,年份可统一写作

(?!0000)[0-9]{4}

下面仅考虑月和日的正则

1. 包括平年在内的所有年份的月份都包含1-28日

(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])

2. 包括平年在内的所有年份除2月外都包含29和30日

(0[13-9]|1[0-2])-(29|30)

3. 包括平年在内的所有年份1、3、5、7、8、10、12月都包含31日

(0[13578]|1[02])-31)

合起来就是除闰年的2月29日外的其它所有日期

(?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)

接下来考虑闰年的实现

1 : 四年一闰
([0-9]{2}(0[48]|[2468][048]|[13579][26])

2 : 百年不闰,四百年再闰
(0[48]|[2468][048]|[13579][26])00

3 : 合起来就是所有闰年的2月29日
([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)

四条规则都已实现,且互相间没有影响,合起来就是所有符合DateTime范围的日期的正则

^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$

考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。

^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

参考资料:http://zhidao.baidu.com/question/125006373.html

热心网友 时间:2022-04-23 08:22

闰年都要判断,我靠...
干嘛非得用正则
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
word绘制施工进度横道图!表格好了,中间的横道杂往上打!!!急急急_百 ... 如何用 SWOT 模型进行自我分析? 求朋友圈、公众号文案排版工具? 写文案用什么软件 回复文案的软件推荐 学习挖掘机需要什么条件 学挖机新手从哪里学 挖掘机学习都学什么 新手学开挖掘机先学哪些 手工麦芽糖怎么做? 麦芽糖怎么做小零食 日期正则表达式怎样写 韩剧里有位叫泰铢的人物是哪部电视剧 这段从中文时间字符串中提出年月日数值的正则表达式怎么写? 跪求那些服装好看的韩国电视剧,【在线观看】免费百度云资源 日期正则表达式怎么写 黄金帝国1-24集韩剧高清全集下载 日期的正则表达式解释 梁家辉主演的《黄金帝国》在哪里下 年月日正则表达式 《黄金帝国(2013)》百度云免费在线观看,赵南国导演的 想要黄金帝国?????(2013)由高修和孙贤周联合主演的免费百度云视频链接地址 怎么用正则表达式来验证日期啊 (yyyy-MM-dd) 表示年月的正则表达式 年月正则表达式 水瓶座还保留着你让换的微信头像是什么意思? 求助我舍不得换掉我的微信头像怎么办 儿女传奇之我是谁剧情介绍 电视剧的情节介绍和电视剧的情节大致是一样的吗? 你是岁月我是星辰剧情介绍 你是我的答案电视剧剧情介绍 帮推荐韩剧,要励志一点的,男主人公比较贫穷那种,然后女主白富美那种。那个叫什么管家都看过了,还有一 正则表达式判断年月格式 用JAVA正则表达式怎么匹配年月日(比如要求输入为出生日期) 韩剧2013年有什么好看的电视剧吗? 用正则表达式匹配日期和时间 正则表达式怎么写“年、月、日”的三个中文文字?? 如何消灭家中常会出现的小飞虫? 一个日期时间的正则表达式,年月日时分秒毫秒都要的,时分秒毫秒可有 PDF转换器破解版 百度云网盘谁有 韩国演员高修演过哪些电视剧? 时分的正则表达式 求正则表达式,只能输入年月日时分 比如201812121212 合法的日期怎样用正则表达式描述 求一个js日期正则表达式,只有以下的可以通过验证:空值;年份(如2013... 电视剧黄金帝国里崔书润的扮演者叫什么名字 甄子丹新片出演毒枭,他还演过哪些经典的角色? 家里很多小飞虫是怎么产生的?怎么切除根源。 家里突然出现小飞虫,请问如何彻底的消灭他们 YYMM 的正则表达式是什么?就是只能输入年月,例如1706 家里有小飞虫怎么消灭?而且找不到来源?家里卫生天天搞,垃圾也是每天扔的?太烦躁了,好痛苦 家里有灭不完的小飞虫?