如何在 adblock 自定义过滤中匹配相似的域名

如何在 adblock 自定义过滤中匹配相似的域名

我正在访问一个逐渐增加其域名的网站:

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

相关内容