ABP规则语法

ADM支持绝大数的ABP规则语法,基本规则基于ABP规则,并进行了字符替换部分的扩展。
ABP规则请参考:
https://adblockplus.org/zh_CN/filters

CSS选择器参考:
http://www.w3school.com.cn/cssref/css_selectors.asp

"!" 为行注释符
注释行以该符号起始作为一行注释语义,用于规则描述。

"|" 为管线符号
来表示地址的最前端或最末端 比如 "|http://" 或 |http://www.abc.com/a.js|,用于精确控制匹配的开始或结束。e.g:|http://www.abc.com等于|http://www.abc.com*,可以匹配以http://www.abc.com开头的网址。

"||" 为子域通配符
方便匹配主域名下的所有子域。比如 "||www.baidu.com" 就可以不要前面的协议"http://"。e.g:||www.abc.com等于www.abc.com,只要网址中包含www.abc.com就可以被匹配。

"~" 为排除标识符
通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。

"@@" 网址白名单
例如不拦截此条地址 @@|http://www.baidu.com/js/u.js或者 @@||www.baidu.com/js/u.js

"*" 为字符通配符
能够匹配0长度或任意长度的字符串。

"^" 为分隔符
可以匹配任何单个字符。

"##"、"#@#"、"##&" 这3种为元素插入语法
在语句末尾加 $B , 可以选择插入css语句在前, 默认为,CSS放在head和body没有区别,但要注意最后面的CSS定义样式会覆盖前面的(相同权重级别情况下),CSS权重:style > id > class > element。

"##" 为元素选择器标识符
后面跟需要隐藏元素的CSS样式例如 #ad_id .ad_class,只要写上CSS选择器,ADM程序会自动在后面加上{display:none!important}隐藏的样式。

"#@#" 元素选择器白名单
可以指除指定元素避免程序在加上隐藏的样式。

"##&" 为JQuery选择器标识符
后面跟需要隐藏元素的JQuery筛选语法, 如 ##&div:has(p),也可以写像##一样的普通元素选择器,这类的规则为加强版的规则,可以避免源网页的元素定义的元素样式比所写的选择还要高导致隐藏样式{display:none!important}失效。

"##%" 是ADM自有的一种语法
经过这种语法插入的选择器程序不会在选择器后面加上{display:none!important}的隐藏样式,需要自己写{}中的样式部分,用于修正隐藏后的移位、留白等问题。如:##%.main{width:200px;height:50px;margin-top:-20px}

全局元素隐藏
元素隐藏支持全局规则##.ad_text不需要前面配置域名,对所有页面有效。简单有效,但误杀会比较多,慎用!

"$s和$S" 为文本替换标识标
格式为:域名$s@查找内容@替换内容@后缀选项,大S和小S的不同之处是小s为普通的通配符替换(?表示任意1个字符,*表示任意多个字符),大S为正则表达式替换,可以通过正则表达式来灵活的查找内容。注意使用此语法替换时一定要事先测试好正则表达式或十分确定正则表达式的正确,如稍有不慎造成循环等错误会导致程序CPU占用升高,ADM退出、卡死等错误。

"@@" 为全局白名单
可以排除某网站整站或某网站目标脚本的拦截,如@@|http://$domain=.baidu.com|、@@|http://www.baidu.com/js/ads.js

"S:" 为https域名白名单
白名单的域名ADM只会转发,不会进行拦截过滤,如S:jd.com、S:taobao.com

你可能感兴趣的:(ABP规则语法)