You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修正正则以匹配带前导0的1-999数字及24小时制时间?

解决方案

最终正则表达式

可以用以下正则匹配符合要求的字符串:

^D(?!0{1,3})\d{1,3} (2[0-3]|[01]\d):[0-5]\d$

各部分逻辑拆解

  • ^D:匹配字符串开头的大写字母D
  • (?!0{1,3})\d{1,3}:处理XXX部分的核心规则:
    • (?!0{1,3}) 是负向前瞻断言,直接排除0、00、000这三种全0情况
    • \d{1,3} 匹配1-3位数字,允许前导0,结合前面的断言后,只会匹配1-999范围内的数字(包括001、012这类带前导0的格式)
  • :匹配DXXX与时间部分之间的空格
  • (2[0-3]|[01]\d):[0-5]\d:沿用你提供的24小时制时间匹配规则,确保时间格式合法(小时00-23,分钟00-59)

示例验证

  • 匹配成功:D001 23:59、D010 00:00、D999 12:34、D1 08:05
  • 匹配失败:D000 10:00(XXX为全0)、D1000 09:00(XXX超过3位)、D01 24:00(小时无效)、D02 12:60(分钟无效)

内容的提问来源于stack exchange,提问作者Renaud is Not Bill Gates

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:00:03