正则表达式匹配12小时24小时制时间
Posted gudbd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式匹配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])
以上是关于正则表达式匹配12小时24小时制时间的主要内容,如果未能解决你的问题,请参考以下文章
求java正则表达式,格式yyyy-mm-dd hh:mm:ss 24小时制的,月份和日期为个位数的时候前面补零,急求