cuthead
小狐狸
小狐狸
  • UID12041
  • 注册日期2006-03-28
  • 最后登录2021-12-09
  • 发帖数78
  • 经验12枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:3580回复:8

请问我这条Foxyproxy的规则哪里有问题?

楼主#
更多 发布于:2007-11-08 22:33
http?://.*(bbc|jaiku|wikipedia|epochtimes|opera|googlepages)\.(com|net|org|co.uk)/.*

这条规则我个人写的,我初学正则表达式,目的为了让foxyproxy通过使用正则表达式代替通配符更好工作.但我发现使用了这个规则后很多不需要代理的网站浏览起来都很慢,是不是这条规则误匹配了某些网址?

另外请教各位,像驱动之家那样  111x222.swf 22x333.gif 这样的数字x数字的广告通过什么Adblock plus 正则表达式规则来屏蔽(记得以前看到有人发过但忘记了)?谢谢各位解答
GA-H61M-DS2
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
1楼#
发布于:2007-11-08 22:33
第一个问题,首先你不需要写前面的http,RE会在url中找匹配的,找到了就全算上。在adblock中的filters中不也从来没出现过http吗?同理,前后两个.*都不需要,像.*这样的通配,一般只有左右同时有内容才是必要的。

另外一个看到的错误就是co.uk里那个.没有加\
改成这个后再试试
(bbc|jaiku|wikipedia|epochtimes|opera|googlepages)\.(com|net|org|co\.uk)


另外最好还是不要把这两个OR逻辑交错写在一起,否则会出来wikipedia.net, googlepages.co.uk这样没有用的结果




111x222.swf 22x333.gif

(\d+x\d+)\.(swf|gif)
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
2楼#
发布于:2007-11-08 22:33
第一个问题,可以清空缓存后比较一下用代理和不用代理的速度。另外,推荐一个扩展Regular Expressions Tester,可以显示匹配的字符,前一段处理误杀的规则情况常用。
第二个问题,参见http://wiki.mozcn.org/index.php/Firefox:Adblock_Filters
参考一下里面的这段
/\D\d{2,3}x\d{2,3}(\.|_)/

进行适当的修改
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
3楼#
发布于:2007-11-08 22:33
呵呵,从那个规则列表里面抄过好多规则,第一版打底子的很多都从那里面来的,学习广告过滤基本就是踩着KMC的脚印过来的。借个地方表示谢意^_^
cuthead
小狐狸
小狐狸
  • UID12041
  • 注册日期2006-03-28
  • 最后登录2021-12-09
  • 发帖数78
  • 经验12枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2007-11-08 22:33
感谢楼上两位
GA-H61M-DS2
cuthead
小狐狸
小狐狸
  • UID12041
  • 注册日期2006-03-28
  • 最后登录2021-12-09
  • 发帖数78
  • 经验12枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2007-11-08 22:33
kmc:第一个问题,首先你不需要写前面的http,RE会在url中找匹配的,找到了就全算上。在adblock中的filters中不也从来没出现过http吗?同理,前后两个.*都不需要,像.*这样的通配,一般只有左右同时有内容才是必要的。

另外一个看到的错误就是co.uk里那个.没有加\
改成这个后再试试
(bbc|jaiku|wikipedia|epochtimes|opera|googlepages)\.(com|net|org|co\.uk)


另外最好还是不要把这两个OR逻辑交错写在一起,否则会出来wikipedia.net, googlepages.co.uk这样没有用的结果




111x222.swf 22x333.gif

(\d+x\d+)\.(swf|gif)
回到原帖


(bbc|jaiku|wikipedia|epochtimes|opera|googlepages)\.(com|net|org|co\.uk)


这个看样子不行,foxyproxy对正则表达式的处理似乎和Adblock Plus不一样,省略.*就无法匹配子目录了.
GA-H61M-DS2
cuthead
小狐狸
小狐狸
  • UID12041
  • 注册日期2006-03-28
  • 最后登录2021-12-09
  • 发帖数78
  • 经验12枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2007-11-08 22:33
看了2楼高手的规则,发现还有漏网.
我想匹配驱动之家的广告  数字x数字.swf 数字x数字单个字母.swf 字母数字x数字.swf 这三种广告,使用这个规则有问题吗?

/([a-z]+)?(\d+x\d+)[a-z]?\.(swf|gif)/
GA-H61M-DS2
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
7楼#
发布于:2007-11-08 22:33
cuthead:看了2楼高手的规则,发现还有漏网.
我想匹配驱动之家的广告  数字x数字.swf 数字x数字单个字母.swf 字母数字x数字.swf 这三种广告,使用这个规则有问题吗?

/([a-z]+)?(\d+x\d+)[a-z]?\.(swf|gif)/
回到原帖


不要轻易使用.*, 这种方法在regex里叫做greedy匹配,它会一下通吃剩下的所有字符,所以你就发现所有网页都打开变慢了。

可以用http?://[^\.]*\.(bbc|jaiku|wikipedia|epochtimes|opera|googlepages)\.(com|net|org|co\.uk)替换试试。 我只是从regex的角度做分析,不知道能不能在foxyproxy里用。

上面的匹配数字可以试试。\d+?\d+[a-z]\.(swf|gif)
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
8楼#
发布于:2007-11-08 22:33
(\w)?(\d+x\d+)(\w)?\.(swf|gif)
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
游客

返回顶部