我正在访问一个逐渐增加其域名的网站:
http://mywebsite100.com/
然后
http://mywebsite101.com/
等等...
我编写了一条规则来阻止所有即将到来的域名上的广告,但 adblock 不接受这种语法。
mywebsite*.com##UL[class="myclass"]
以下是 adblock 自定义过滤的文档:https://adblockplus.org/en/filters
答案1
Adblock Plus 过滤器由两部分组成:用于选择应阻止的内容的模式和应应用过滤器的域列表(以及您可以指定的许多其他选项)。
请求阻止过滤器可以定义正则表达式
例如/^http:\/\/mysite\d+\.com\/$domain=example.com
元素隐藏过滤器使用 CSS 选择器
例如example.com##a[href^="http://mysite"][href*=".com"]
请注意,域列表(在本例中为“example.com”)必须是静态的。因此,隐藏此类域上的元素的最佳方法是将其限制在域中,com
并使 CSS 选择器尽可能具体,以便它只匹配您想要定位的页面。
答案2
试试这个 http://mywebsite\d+.com/ 它是一个 JavaScript 正则表达式。是的,我也试过了。它有效,但似乎什么也没做。我认为你必须在过滤器中包含所有数字。我这样说的原因是 ABP 使用的列表必须列出所有不同国家的域名,例如 amazon.com。例如 en de au 代表世界上不同的国家代码。我注意到很多这些屏蔽网站都包含大量数据,即使允许使用正则表达式,这些文件中仍然有大量数据。
这可能与您不能在代码的域部分使用正则表达式字符有关。
以下 Microsoft 文章提供了在域部分中无效使用 * 的示例。第二个示例无效,正如文章所述,“因为在域规则的域部分中使用了通配符”(1)
+d contoso.com 订阅字符串 +d contoso.com 子字符串
(1)https://msdn.microsoft.com/en-us/library/hh273399(v=vs.85).aspx#creatingtpls