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

如何用Userscript的@match和@exclude匹配指定层级路径而非子层级

用户脚本中@match/@exclude匹配特定层级URL的优雅方案

问题场景

想要用用户脚本的@match和@exclude规则,精准匹配特定层级的URL(每一个/对应一个层级),但完全不匹配该层级以下的子页面(也就是路径里后续还有/的页面)。

比如想匹配Reddit任意子版块的首页(像https://reddit.com/r/funny),但不匹配https://reddit.com/r/funny/submit这类子页面。之前试过的规则是:

@match    https://*.reddit.com/r/*/
@exclude  https://*.reddit.com/r/*/*/

但脚本还是会在子页面触发,希望只用基础的@match和@exclude解决,不用已弃用的@include或者脚本内的路径验证逻辑。

正确规则组合

直接用下面的规则就能实现需求:

@match    https://*.reddit.com/r/*
@match    https://*.reddit.com/r/*/
@exclude  https://*.reddit.com/r/*/*
@exclude  https://*.reddit.com/r/*/*/

规则说明

  • 前两行@match:同时覆盖带末尾斜杠和不带末尾斜杠的子版块首页(浏览器访问时两种格式都会指向同一个页面,但匹配规则对末尾斜杠敏感,所以需要都写上)
  • 后两行@exclude:同样覆盖带/不带末尾斜杠的所有子层级页面,确保任何在子版块下的二级路径都会被排除

之前规则失效的原因

  1. 只匹配了带末尾斜杠的首页,但用户访问不带斜杠的URL时,部分脚本引擎可能会在浏览器重定向前就触发脚本,导致漏匹配或误触发
  2. 只排除了带末尾斜杠的子层级页面,漏掉了不带斜杠的情况,比如https://reddit.com/r/funny/submit这类URL会绕过@exclude规则,导致脚本仍在子页面运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:52:14