正則表達式匹配12小時24小時制時間
阿新 • • 發佈:2018-10-08
存在 有意 實現 正則表達 相同 ... 方式 時間 如果
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])
正則表達式匹配12小時24小時制時間