正则表达式匹配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])

转载于:https://www.cnblogs.com/gudbd/p/9751977.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值