15楼#
发布于:2009-08-02 18:18
半瓶水的路过,那个网页,在我这里发挥作用的通用过滤规则是.com/ad/
|
|
16楼#
发布于:2009-08-02 18:18
一般來說,功能越強大效能越低,正則很強大,他的強項不在效能,而在泛用性的比對。
撇開效能不提,這條正則寫的很漂亮,短而易懂,目標明確,主要針對ad, banner關鍵字,這兩個關鍵字選的很合理。換作一般寫法,可能要寫上好幾條 .ad. .ads. .banner. .banners. */ad/* */ads/* !---以下省略 不過我建議你把這條正則寫成更易於維護的形式 /(\.|\/)(ad|ads|banner|banners)[0-9]*(\.|\/|_)/ (\.|\/)比對的樣式為『.』或『/』,(ad|ads|banner|banners)比對『ad』、『ads』、『banner』或『banners』,[0-9]*比對零到無限多個數字,(\.|\/|_)比對『.』、『/』或『_』。 這樣寫,易懂也易於擴充,比如說,我要加入adsense,只要這樣寫 /(\.|\/)(ad|ads|adsense|banner|banners)[0-9]*(\.|\/|_)/ 如果你沒訂閱或只訂閱ChinaList,可以考慮使用上面那條規則。如果訂閱了很多規則ChinaList+EasyList,再用這條規則,那真是脫褲子放屁,EasyList本身就蒐羅了.au/ads/、.br/ads/、/adsense2、/banner_js.*?等規則。 你在另一個討論主題提出的規則,超長的一條,不建議使用,因為你大概也沒看懂它做了什麼,要是你看懂了,你也不會寫出該文的第一條正則,因為超長的一條完全做完第一條正則所作的事,同時使用兩條,疊床架屋,嫌CPU閒著沒事找事幹麼? 最後的建議,使用你看得懂的正則,瞭解你付出的代價,效能、誤殺等等。 |
|
17楼#
发布于:2009-08-02 18:18
外行人路过询问一下
看了一下ChinaList 基本全是按照网站来的嘛 这样是不是有点像“数据库” 而且会越来越庞大 这样的真的比正则表达式快和省 ? 我觉得还是应该用一条最保守的正则表达式 + 个别网站规则 这样的比较好 |
|
18楼#
发布于:2009-08-02 18:18
EasyList 致力于维护一个通用的规则。Adblock Plus在处理简单过滤规则的时候效率比正则效率高很多,据说是一个常量值,和规则的多少无关。作者建议尽量不要使用正则。
ChinaList 最初的时候同时维护着一些 EasyList 已有的规则。现在EasyList收录的规则,ChinaList 不再维护,只是作为他的一个补充,对一些中文站点制定一些特殊的规则 正则在其通用性,对个人用户来说,如果你自己可以写,或者可以读懂的话,可以使用,那样就不需要EasyList,但是对于列表来说的话,要适应不同用户的需求,抛开效率不谈,正则也不易维护 |
|
19楼#
发布于:2009-08-02 18:18
但是这几百个条目是如何在载入网页时做到快速匹配且不费资源的呢?
|
|
20楼#
发布于:2009-08-02 18:18
|
|
|
上一页
下一页