请教一个正则表达式,用于 AdGuardHome 匹配追踪域名

2021-06-04 17:00:34 +08:00
 Maskeney

形如 "forth.third.domain.tld" 形式的域名,匹配任意一级域名中包含以 ad 结尾,且 ad 前方的字母不是 b\lo\re 等,即不匹配 bad/download/read这些

目前自己写了一个,由于需要保证 ad 前有不固定字符,就使用了.*来通配,但是如此会导致后面跟着的的(?!lo|re|wp|b|ksyun)被覆盖完全不生效;如果前面不加通配,就只能匹配某一级域名完全是 ad,类似 xx.ad.xx.xx 这种,预设的大范围杀伤就没有了。

.*((?!lo|re|wp|b|ksyun)ad)(s?[\d]+|m|s)?\.

还有一个类似但以 log 结尾的

.*(?!cata|b|typ)log(s?[\d]+|_|\-|s)\.

就比较难,找了半天正则的教程示例也没头绪,特来求助 V 友

510 次点击
所在节点    问与答
2 条回复
AoEiuV020
2021-06-04 17:25:19 +08:00
^(?!.*(lo|b|re)ad).*$
Maskeney
2021-06-04 20:21:39 +08:00
@AoEiuV020 #1 这个匹配范围成了只要没有 lo|b|re ad 就匹配上了,AdGuardHome 的规则是要匹配所有查询的域名的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/781422

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX