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

求匹配数字+单个大写HMS组合序列的正则表达式

正则表达式解决方案:匹配数字+大写HMS的序列

直接给出符合需求的正则表达式:

^(\d+[HMS])+$

正则各部分解释

  • ^:锚定字符串起始位置,确保从开头就符合规则
  • (\d+[HMS])+:核心匹配逻辑,作为可重复的分组:
    • \d+:匹配1个或多个数字,支持多位数(比如10、20)
    • [HMS]:严格匹配大写的H、M、S三者之一,拒绝小写或其他字符
    • 末尾的+:允许这个“数字+HMS”的组合重复1次或多次,支持多段拼接(比如10H20M)
  • $:锚定字符串结束位置,确保整个字符串都符合规则,无多余字符

验证情况

匹配成功的示例

  • 10H
  • 10H20M
  • 10H20M9S
  • 20M
  • 5H6S

匹配失败的示例

  • 3Y5M:包含不允许的Y字符
  • 5H4F:包含不允许的F字符
  • 10H6MM:同一数字段后出现多个M,违反“每个数字后仅跟一个大写HMS”的要求
  • 10h:使用小写字母,不符合大写要求

原正则失效原因

你之前写的^[0-9][HMS]$有两个关键问题:

  1. 只能匹配单个数字(比如5),无法匹配多位数(比如10)
  2. 只能匹配一组数字+HMS,无法支持多组合拼接(比如10H20M)
    因此才会出现匹配失败的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:10:21