正则表达式--指定时间格式校验
Posted zeromz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式--指定时间格式校验相关的知识,希望对你有一定的参考价值。
1、对闰年平年的划分,关键是看2月最后一天是28还是29进行划分
^((([0-9]{2})(0[48]|[2468][048]|[13579][26])) #闰年,能被4整除但不能被100整除 |((0[48]|[2468][048]|[13579][26])00) #闰年,能被400整除 -02-29) #匹配闰年2月29日这一天。如果不是这一天,则由下面式子继续匹配验证。 |([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3}) #平年(0001-9999) -(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])) #月日,1、3、5、7、8、10、12月有31天 |((0[469]|11)-(0[1-9]|[12][0-9]|30)) #月日,4、6、9、11月有30天 |(02-(0[1-9]|[1][0-9]|2[0-8]))) #平年2月只有28天,月日表示为【02-01至02-28】
2、一种指定格式的时间格式校验,精确到毫秒3位
--正则表达式:校验精确到3位毫秒的时间戳字符串,时间格式‘YYYYMMDDHH24MISSFF3‘ select REGEXP_SUBSTR(‘20180227112155333‘, ‘((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))(([0-1]d|2[0-3])[0-5]d[0-5]dddd)‘, 1, 1) t from dual;
3、
以上是关于正则表达式--指定时间格式校验的主要内容,如果未能解决你的问题,请参考以下文章