正則表達式--指定時間格式校驗


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、Java校驗yyyy-MM-dd HH:mm:ss日期格式的字符串

^((\\d{2}(([02468][048])|([13579][26]))\\-((((0?[13578])|(1[02]))\\-((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))\\-((0?[1-9])|([1-2][0-9])|(30)))|(0?2\\-((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))\\-((((0?[13578])|(1[02]))\\-((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))\\-((0?[1-9])|([1-2][0-9])|(30)))|(0?2\\-((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s((([0-1][0-9])|(2?[0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))$

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM