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

正则表达式需求:匹配Grade开头且中间含Math的点分隔字符串

正则匹配两个点之间以Math开头的字符串

你的问题出在原正则的贪婪匹配上:.+会尽可能多的匹配字符,导致当字符串最后一个点前的内容以Math开头时(比如Grade 3.Demo Adaptive Module.Mathematics里的Mathematics),也会被误判为符合规则。你真正需要的是限定第一个点和第二个点之间的中间段必须以Math开头。

修正后的正则模式

带捕获组(保留中间段内容)

^[^.]+\.(Math.*)\.[^.]+ *$

不带捕获组(仅匹配整个字符串)

^[^.]+\.Math.*\.[^.]+ *$

模式解释

  • ^:锚定字符串开头,避免匹配字符串中间的片段
  • [^.]+:匹配一个或多个非点字符,确保只匹配第一个点之前的内容(不会跨点贪婪匹配)
  • \.:匹配字面量点(需要转义,因为.在正则里是通配符)
  • Math.*:匹配以Math开头的任意内容(中间段核心规则)
  • [^.]+:匹配第二个点之后的非点内容
  • *$:允许字符串末尾有0个或多个空格,然后锚定字符串结尾,适配你提供的带空格的示例

验证结果

  • 符合匹配要求的示例全部命中:
    Grade 8.Maths Test.Maths
    Grade 8.Maths Test.Maths 
    Grade 6.Maths Formative Assessment.NA
    
  • 需要忽略的示例全部被排除:
    Grade 3.Multiplication  new.Mathematics
    Grade 3.Demo Adaptive Module.Mathematics
    Grade 4.Poetry.English
    Maths 4.Primary.Maths
    Maths 5.Primary.Concepts
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:15:34