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

编写匹配指定路径排除fixed-courses前缀正则及对应反向正则

正则解决方案

第一个匹配正则(排除fixed-courses前缀)

你原先的正则存在两个缺陷:一是没有适配路径末尾带query参数的场景,二是没有添加fixed-前缀的排除逻辑。
修正后的正则如下:

^/(?!fixed-)[^/]+-courses/[^/]+/[^/?]+(\?.*)?$

逻辑说明:

  • ^/ 匹配路径开头的斜杠
  • (?!fixed-) 为否定前瞻断言,强制当前位置之后不能出现fixed-字符,直接排除所有fixed-courses前缀的路径
  • [^/]+-courses/ 匹配任意非斜杠开头的*-courses/前缀段
  • [^/]+/ 匹配第二段路径
  • [^/?]+ 匹配第三段路径,主动排除query参数的?分隔符
  • (\?.*)? 可选匹配末尾的query参数部分,适配带参数的路径场景

匹配验证

命中正则的合法路径:

  • /xyz-courses/test/test
  • /abc-courses/test-abc/test-xyz
  • /abc-courses/test-abc/test-xyz?itsok=yes

被正则排除的路径:

  • /fixed-courses/test/test
  • /fixed-courses/test-abc/test-xyz
  • /fixed-courses/test-abc/test-xyz?itsok=yes

第二个反向匹配正则(匹配所有不符合第一个正则的内容)

你之前的写法误用了字符集语法,反向匹配需要通过全局否定前瞻实现,正确写法如下:

^(?!/(?!fixed-)[^/]+-courses/[^/]+/[^/?]+(\?.*)?$).*$

逻辑说明:

  • 外层(?!第一个正则表达式$)为全局否定前瞻,要求整个字符串不能命中第一个正则的匹配规则
  • 末尾的.*匹配所有符合上述否定条件的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:39:01