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

求正则表达式:匹配符合规则且不含confirmation的URL页面标识

正则表达式解决方案

针对你的需求——从URL中捕获页面标识,同时排除包含confirmation的URL,这里提供一个精准的正则表达式,并拆解每个部分的作用:

最终正则表达式

^(?!.*confirmation).*#\/([^?]+)(?:\?.*)?$

规则拆解

我们逐个分析正则的组成部分,帮你理解它如何满足需求:

  • ^(?!.*confirmation):负向前瞻断言,确保整个URL字符串中不包含confirmation这个词。如果URL里有这个词,直接跳过不匹配。
  • .*#\/:匹配#/之前的所有内容(比如域名、路径前缀等),准确定位到页面标识的起始位置。
  • ([^?]+):捕获组,这是我们要提取的页面标识部分。[^?]+表示匹配除了?之外的所有字符,直到遇到?(参数起始符)或者行尾。
  • (?:\?.*)?:非捕获组,用来匹配URL中可选的参数部分(比如?courseName=abc&courceTitle=MyTitle),?表示这部分是可选的,不会被捕获。
  • $:匹配行尾,确保我们匹配的是完整的URL字符串。

匹配测试

我们用你提供的示例来验证:

有效匹配(会捕获页面标识)

  • https://www.example.com/course/home#/ → 捕获到: (空字符串,对应Home标识)
  • https://www.example.com/tag/mypage/course/#/courseSummary?courseName=abc&courceTitle=MyTitle → 捕获到:courseSummary
  • https://www.example.com/tag/mypage/course/#/options/grounddetails → 捕获到:options/grounddetails
  • https://www.example.com/tag/mypage/course/#/options/Certification/segment → 捕获到:options/Certification/segment
  • https://www.example.com/tag/mypage/course/#/checkout/customer → 捕获到:checkout/customer

无效匹配(会被排除)

  • https://www.example.com/tag/mypage/course/#/confirmation?success=true → 因为包含confirmation,不会被匹配

自定义调整

如果你只需要捕获路径的最后一段(比如从options/grounddetails中只提取grounddetails),可以把正则修改为:

^(?!.*confirmation).*#\/.*\/([^/?]+)(?:\?.*)?$

这个版本会捕获#/之后最后一个斜杠到?或行尾的部分,比如上面的grounddetails、customer等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:22:49