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

求匹配18-99数字与m可选空格组合格式的正则表达式

18-99数字与m组合正则匹配方案

原有正则问题

之前编写的正则(1[89]|[2-9]\d) m (1[89]|[2-9]\d)存在逻辑错误:它强制要求匹配「数字 + 空格 + m + 空格 + 数字」的固定三段结构,和「数字、m两个元素顺序可互换,中间可选空格」的规则完全不符,因此会出现大量误匹配。

可用正则

子串匹配(匹配长文本中符合规则的片段)

(?:m ?(?:1[89]|[2-9]\d)|(?:1[89]|[2-9]\d) ?m)

整串精确匹配(要求整个字符串完全符合规则,前后无其他字符)

^(?:m ?(?:1[89]|[2-9]\d)|(?:1[89]|[2-9]\d) ?m)$

规则说明

  • 正则通过|分割两种合法排列逻辑,覆盖顺序可互换的要求:
    • m ?(?:1[89]|[2-9]\d):匹配m开头,后接0或1个空格,再接18-99区间数字的组合
    • (?:1[89]|[2-9]\d) ?m:匹配18-99区间数字开头,后接0或1个空格,再接m的组合
  • ?用于匹配可选的单个空格,刚好覆盖「中间可加空格也可不加」的要求
  • (?:1[89]|[2-9]\d)是18-99数字的匹配逻辑:覆盖18、19,以及20-99所有两位数,用非捕获组做逻辑分组,不会产生多余的捕获结果,匹配性能更优

匹配验证

  • 可正常匹配的示例:m18、18m、m 18、18 m、m99、99m、m 30、65 m
  • 不会误匹配的内容:单独的m、m17、17m、100m、m 100、18 m 20

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:51:23