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

如何使用正则表达式匹配截止到首个后续斜杠前的所有目标URL

问题分析

你原来写的https://www.domain.tld/service[^/]*存在两个核心问题:

  1. 没有添加结束锚点,实际只会做前缀匹配,对于https://www.domain.tld/service/afdsasdaf这类不符合要求的URL,依然能匹配到https://www.domain.tld/service这段前缀,导致误判。
  2. 域名中的.没有转义,正则里.默认匹配任意字符,存在误匹配其他相似域名的风险。

正确正则写法

如果是做完整URL校验,推荐使用:

^https://www\.domain\.tld/service(?:/?(?:\?.*)?)$

各部分说明:

  • ^ 匹配字符串开头,避免匹配到包含该路径的其他长URL
  • https://www\.domain\.tld/service 匹配固定前缀,.转义为\.保证只匹配字面量点
  • (?:/?(?:\?.*)?) 非捕获分组,匹配service后允许的所有合法后缀:
    • /? 允许存在0个或1个尾部斜杠
    • (?:\?.*)? 允许存在0个或1个查询参数段(即?开头的任意后续内容)
  • $ 匹配字符串结尾,保证service后不会出现多余的路径段

匹配效果验证

可匹配的目标URL:

  • https://www.domain.tld/service?itm_pm=de:ncp:ctr:c1cn:0:0
  • https://www.domain.tld/service
  • https://www.domain.tld/service/

不会匹配的排除URL:

  • https://www.domain.tld/service/afdsasdaf
  • https://www.domain.tld/service/afdsasdaf/asdasd

如果你的使用场景是从长文本中提取符合要求的URL,不需要完整匹配整个字符串,可以改用带否定预查的版本:

https://www\.domain\.tld/service(?!/[^?])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:45:03