adblockplus 中文文档 下载 App

自定义规则语法总览:每一个符号的含义

规则分类

ABP 的规则大致分四类:

类型用途符号标志
地址拦截拦网络请求无特殊开头
地址例外放行网络请求@@ 开头
元素隐藏CSS 隐藏 DOM 节点## 分隔
元素隐藏例外放行元素隐藏@ 放在域名前

通配符与特殊符号

符号含义例子
*匹配任意长度字符(包括空)banner*.jpg 匹配 banner1.jpg、banner-big.jpg
^分隔符结束——URL 在这里要么结束,要么后面跟着 / ? = : & # `` 其中之一example.com^ 匹配 example.com 及所有子域名请求
``URL 边界。开头的 ` 匹配协议(http:// 或 https://),结尾的 ` 匹配 URL 结束`https://example.com/ads` 精确匹配完整 URL
``域名边界。匹配域名开头(包括协议和任意子域名)`doubleclick.net^` 拦截所有 doubleclick.net 的请求
##元素隐藏分隔符。左边域名,右边 CSS 选择器example.com##div.ad-banner
@@例外规则标记。后面的匹配内容会覆盖对应的拦截规则`@@facebook.com^` 放行 Facebook 域名的所有请求
$规则选项。写在规则最后,$ 后面是选项列表,逗号分隔`tracker.com^$script` 只拦该域名的脚本请求
$ 选项 script只匹配 JS 脚本请求—
$ 选项 image只匹配图片请求—
$ 选项 document只匹配 HTML 文档(主页面)—
$ 选项 third-party只匹配第三方请求(域名与当前页面不同)—
$ 选项 important强制优先级——覆盖所有普通规则和例外`doubleclick.net^$important`

优先级

例外规则(@@)默认优先于拦截规则。但如果你写了 $important,它会反过来压过普通的例外规则。这是做"强制拦截"的手段。

注释

以 ! 开头的行是注释,ABP 会忽略它。用来给自己的规则写说明:

! 下面这条拦掉微博的右侧推荐栏
weibo.com##div.recommend-list

规则顺序不影响优先级

ABP 的规则引擎在处理请求时会并行遍历所有规则,不是按文件顺序一条条匹配。所以你自己写的自定义规则放在订阅的前面还是后面不重要——优先级由规则类型和 $important 决定,不由位置决定。