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

正则表达式匹配特定有效时间格式问题求助

解决方案:单个正则实现需求

可以用单个正则完成你的需求,核心是把两种匹配场景拆分为独立分支,同时复用ddhhmm的有效匹配规则避免冗余。

最终正则表达式

^VALID(?: (?:TIL|UNTIL) (?P<ddhhmm>(?:[012]\d|3[01])(?:[01]\d|2[0-3])(?:[0-5]\d))| (?P=ddhhmm)[-/](?P=ddhhmm))$

正则拆解说明

  1. 基础锚定:^VALID 确保字符串以VALID开头,$ 确保字符串结尾无多余内容
  2. 分支1:带TIL/UNTIL的场景
    • (?:TIL|UNTIL) 匹配TIL或UNTIL关键词
    • (?P<ddhhmm>(?:[012]\d|3[01])(?:[01]\d|2[0-3])(?:[0-5]\d)) 定义命名捕获组ddhhmm,实现有效时间格式匹配:
      • (?:[012]\d|3[01]):匹配合法日期(00-29或30-31)
      • (?:[01]\d|2[0-3]):匹配合法小时(00-19或20-23)
      • (?:[0-5]\d):匹配合法分钟(00-59)
  3. 分支2:双时间场景
    • (?P=ddhhmm) 复用之前定义的ddhhmm规则,确保两个时间都符合格式要求
    • [-/] 匹配分隔符-或/

测试验证

  • 符合匹配的示例:
    • VALID TIL 312359
    • VALID UNTIL 000000
    • VALID 121212-302359
    • VALID 010101/292359
  • 不符合匹配的示例:
    • VALID TIL 322359(日期32不合法)
    • VALID 122400-312359(小时24不合法)
    • VALID 121260/312359(分钟60不合法)
    • VALID TIL 123456-789012(带TIL却出现双时间,不符合规则)

内容的提问来源于stack exchange,提问作者Reid Carnes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:07:43