正則表達式匹配12小時24小時制時間


1、正則表達式匹配時刻

(1)12小時制-匹配8:10 am或者10:30 pm ...

  • 最簡單也是我們最先想到到的應該就是這種正則:[0-9]?[0-9]:[0-9]{2} (am|pm);

  這的確可以滿足需求,但是上述正則呢可以匹配99:99 am這種沒有意義的數據,如果只是要表示有意義的數據呢??

  • 可以采用這種方式:(1?[0-2]|[1-9]):[0-5][0-9] (am|pm);

(2)24小時制匹配時間

  24小時制我們就需要考慮0這個問題,如03:30;

  我們細細想一下這個問題,24個小時可以分為這三種情況,00-09,10-19,20-23;

  • 按照這個思路我們可以這樣寫:(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9],如果要是存在3:30這種情況,可以這樣寫(0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]

  上邊這個正則確實滿足了需求,但是能否讓表達式更加完美一下呢?

  • 正則表達式合並:([01]?[0-9]|2[0-3]):[0-5][0-9]

  除了上面所說的方法,還有另外一種思路也可以實現相同的效果,只是這種方法不大容易想到;

  思路二:將時間分為五種情況,04-09,14-19,00-03,10-13,20-23;

  • ([0-1]?[4-9]|[0-2]?[0-3])


免責聲明!

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



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