首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用pihole对YouTube广告执行正则表达式

尝试使用pihole对YouTube广告执行正则表达式
EN

Stack Overflow用户
提问于 2019-08-30 12:53:54
回答 3查看 12.8K关注 0票数 0

尝试正则表达式urls,如下所示:

代码语言:javascript
复制
r4---sn-vgqsrnez.googlevideo.com
r1---sn-vgqsknlz.googlevideo.com    
r5---sn-vgqskn7e.googlevideo.com    
r3---sn-vgqsknez.googlevideo.com    
r6---sn-vgqs7ney.googlevideo.com    
r4---sn-vgqskne6.googlevideo.com    
r4---sn-vgqsrnez.googlevideo.com    
r5---sn-vgqskn76.googlevideo.com    
r6---sn-vgqs7ns7.googlevideo.com    
r1---sn-vgqsener.googlevideo.com    
r1---sn-vgqskn7z.googlevideo.com    
r1---sn-vgqsknek.googlevideo.com    
r6---sn-vgqsener.googlevideo.com    
r3---sn-vgqs7nly.googlevideo.com    
r1---sn-vgqsknes.googlevideo.com    
r4---sn-vgqsrnes.googlevideo.com    
r6---sn-vgqskn76.googlevideo.com

我试过了:

代码语言:javascript
复制
(^|\.)r[0-100]---sn-vgqs?n??\.googlevideo\.com$
(^|\.)r[0-100]?*\.googlevideo\.com$
^r[0-100]---sn-vgqs(?:.*)n(?:.*)(?:.*).googlevideo.com$
^r[0-100]---sn-vgqs(?:.*)n(?:.*).googlevideo.com$

但是什么都不起作用

我可能用错了正则表达式,因为我没有太多使用它的经验,但在网上看了看,有些人说这可能是Pihole的问题。

EN

回答 3

Stack Overflow用户

发布于 2019-08-30 13:03:35

我猜你希望有一个有限的边界,如果不是这样,这个表达式可能会有点接近你的想法:

代码语言:javascript
复制
^r\d+---sn-vgqs[a-z0-9]{4}\.googlevideo\.com$

Demo 1

如有必要,可以添加更多边界,例如:

代码语言:javascript
复制
^r(?:100|[1-9]\d|\d)---sn-vgqs[a-z0-9]{4}\.googlevideo\.com$

Demo 2

或者:

代码语言:javascript
复制
^r(?:100|[1-9]\d|\d)---sn-vgqs(?:rne(?:s|z)|kne(?:s|z)|knlz|kn7e|7ney|kne6|kn76|7ns7|ener|kn7z|knek|7nly)\.googlevideo\.com$

Demo 3

我只是猜想而已。

如果你想探索/简化/修改这个表达式,可以在regex101.com的右上角面板中找到解释。如果您愿意,您还可以在this link中观看它如何与一些样本输入进行匹配。

票数 1
EN

Stack Overflow用户

发布于 2019-09-06 01:30:53

下面的正则表达式匹配所有的url,以"r“开头,然后是没有限制字符数的任何其他url,然后是"sn”,然后是任意数量的字符,最后是".googlevideo.com“。表达式是以^和$锚定的。我在我的pihole上试了试,取得了很大的成功,但后来不得不把它移除。所有的r....sn...googlevideo.com在查询列表中都被屏蔽了,但它也让我的智能电视youtube应用程序崩溃了。它根本不会播放任何视频,除非我把它从pihole上移走。使用它的风险自负。

^r.+sn.+(.googlevideo.com)$

票数 0
EN

Stack Overflow用户

发布于 2020-01-16 21:23:59

这篇文章有点老了,但因为我试过使用正则表达式,所以我只想说,你的正则表达式不能工作,因为有一个“小”点。

Pi-Hole使用POSIX ERE (POSIX扩展正则表达式)标准。所以没有懒惰的量词或速记字符类。

它也不支持像第三行和第四行那样的非捕获组。您可以在RegexBuddy等工具中检查此类正则表达式。也许其他免费工具也可以检查它,并帮助转换它。我当前的正则表达式是:

^r[[:digit:]]+---sn-4g5e[a-z0-9]{4}\.googlevideo\.com$

它正确地阻止了所有广告,也阻止了视频。如果您使用它,您必须执行以下操作。

打开youtube视频并检查视频是否加载。如果没有,请转到您的pi hole仪表板的查询日志。

对于您的设备,您将有两个dns查询r5---sn-4g5e6nze.googlevideo.comr5---sn-4g5ednse.googlevideo.com

查询日志中的最后一个(上部)是视频。因此,请将dns列入白名单。有时候你不得不这么做。

问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57720692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档