正则表达式--指定时间格式校验

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]\d\d\d\d)', 1, 1) t from dual;

3、

转载于:https://www.cnblogs.com/ZeroMZ/p/9595728.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值