屏蔽 Youtube 广告

Block Youtube ads

我正在尝试使用 pihole 屏蔽烦人的 YouTube 广告,但遗憾的是它对我不起作用。以下根本没看:

(rr[\d]{1}---[\s]{2}-[\s]{8}-[\w]{4})\.googlevideo\.com

有没有人有过类似的经历?

示例如下所示

rr1---sn-8xgn5uxa-quhl.googlevideo.com
rr1---sn-8xgn5uxa-quhl.googlevideo.com
rr3---sn-8xgn5uxa-quhz.googlevideo.com
rr6---sn-8xgn5uxa-quhl.googlevideo.com

此图案与您的所有样本匹配,但它可能太紧了?

rr\d---sn-8xgn5uxa-quh\w.googlevideo.com

在模式中使用 [\s]{2}(可以写成 \s{2} 匹配 2 个空白字符,但在示例数据中有 sn

这种情况下的单个元字符不必放在方括号之间。

查看一些文档 on this page \w \s\d 不受支持。

你可能会用到

rr[[:digit:]]---sn-[[:alnum:]]{8}-[[:alnum:]]{4}\.googlevideo\.com

模式匹配:

  • rr[[:digit:]]匹配rr和一个数字
  • ---sn-字面匹配
  • [[:alnum:]]{8} 匹配 8 个字母数字
  • -[[:alnum:]]{4} 匹配 - 和 4 个字母数字
  • \.googlevideo\.com 匹配 .googlevideo.com

看到一个regex demo.

Pi-Hole documentation 没有提及字符 类 的常用缩写(如您使用的 \d\s\w)。

如果您将角色 类 替换为 Pi-Hole 文档中的角色,您将以

结尾
(rr[:digit:]{1}---[:space:]{2}-[:space:]{8}-[A-Za-z0-9_]{4})\.googlevideo\.com

可能 \s 不是您最初想要的,因为您的示例中包含字母而不是空格。 \w 包含一个下划线,它不会出现在您的示例中。也可以跳过{1}

所以我建议这个表达式:

(rr[:digit:]---[:alnum:]{2}-[:alnum:]{8}-[:alnum:]{4})\.googlevideo\.com

如果您不需要 hostname-part 进行进一步处理,您可以删除它周围的组标记 ()