求匹配数字+单个大写HMS组合序列的正则表达式
正则表达式解决方案:匹配数字+大写HMS的序列
直接给出符合需求的正则表达式:
^(\d+[HMS])+$
正则各部分解释
^:锚定字符串起始位置,确保从开头就符合规则(\d+[HMS])+:核心匹配逻辑,作为可重复的分组:\d+:匹配1个或多个数字,支持多位数(比如10、20)[HMS]:严格匹配大写的H、M、S三者之一,拒绝小写或其他字符- 末尾的
+:允许这个“数字+HMS”的组合重复1次或多次,支持多段拼接(比如10H20M)
$:锚定字符串结束位置,确保整个字符串都符合规则,无多余字符
验证情况
匹配成功的示例
10H10H20M10H20M9S20M5H6S
匹配失败的示例
3Y5M:包含不允许的Y字符5H4F:包含不允许的F字符10H6MM:同一数字段后出现多个M,违反“每个数字后仅跟一个大写HMS”的要求10h:使用小写字母,不符合大写要求
原正则失效原因
你之前写的^[0-9][HMS]$有两个关键问题:
- 只能匹配单个数字(比如
5),无法匹配多位数(比如10) - 只能匹配一组数字+HMS,无法支持多组合拼接(比如
10H20M)
因此才会出现匹配失败的情况。
内容的提问来源于stack exchange,提问作者Fiv
相关产品推荐
相关产品推荐

