阅读:4054回复:8
请问我这条Foxyproxy的规则哪里有问题?
http?://.*(bbc|jaiku|wikipedia|epochtimes|opera|googlepages)\.(com|net|org|co.uk)/.*
这条规则我个人写的,我初学正则表达式,目的为了让foxyproxy通过使用正则表达式代替通配符更好工作.但我发现使用了这个规则后很多不需要代理的网站浏览起来都很慢,是不是这条规则误匹配了某些网址? 另外请教各位,像驱动之家那样 111x222.swf 22x333.gif 这样的数字x数字的广告通过什么Adblock plus 正则表达式规则来屏蔽(记得以前看到有人发过但忘记了)?谢谢各位解答 |
|
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) |
|
|
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}(\.|_)/ 进行适当的修改 |
|
3楼#
发布于:2007-11-08 22:33
呵呵,从那个规则列表里面抄过好多规则,第一版打底子的很多都从那里面来的,学习广告过滤基本就是踩着KMC的脚印过来的。借个地方表示谢意^_^
|
|
4楼#
发布于:2007-11-08 22:33
感谢楼上两位
|
|
5楼#
发布于:2007-11-08 22:33
kmc:第一个问题,首先你不需要写前面的http,RE会在url中找匹配的,找到了就全算上。在adblock中的filters中不也从来没出现过http吗?同理,前后两个.*都不需要,像.*这样的通配,一般只有左右同时有内容才是必要的。 (bbc|jaiku|wikipedia|epochtimes|opera|googlepages)\.(com|net|org|co\.uk) 这个看样子不行,foxyproxy对正则表达式的处理似乎和Adblock Plus不一样,省略.*就无法匹配子目录了. |
|
6楼#
发布于:2007-11-08 22:33
看了2楼高手的规则,发现还有漏网.
我想匹配驱动之家的广告 数字x数字.swf 数字x数字单个字母.swf 字母数字x数字.swf 这三种广告,使用这个规则有问题吗? /([a-z]+)?(\d+x\d+)[a-z]?\.(swf|gif)/ |
|
7楼#
发布于:2007-11-08 22:33
cuthead:看了2楼高手的规则,发现还有漏网. 不要轻易使用.*, 这种方法在regex里叫做greedy匹配,它会一下通吃剩下的所有字符,所以你就发现所有网页都打开变慢了。 可以用http?://[^\.]*\.(bbc|jaiku|wikipedia|epochtimes|opera|googlepages)\.(com|net|org|co\.uk)替换试试。 我只是从regex的角度做分析,不知道能不能在foxyproxy里用。 上面的匹配数字可以试试。\d+?\d+[a-z]\.(swf|gif) |
|
8楼#
发布于:2007-11-08 22:33
(\w)?(\d+x\d+)(\w)?\.(swf|gif) |
|
|