On Mon, Dec 10, 2018 at 08:46:32AM +0200, Henrik Krohns wrote: > On Sun, Dec 09, 2018 at 01:06:01PM -0500, Bill Cole wrote: > > > > To make this determination, the rules require the 'multiple' flag without > > a cap on thne number of matches which a 'maxhits' parameter would set. > > Please don't do unlimited maxhits, it's terrible if message accidently or > intentionally contains thousands of e's. The eval code runs all sorts of > crap for every hit, not to mention the mass of debug lines it potentially > creates. > > If I read right, isn't it enough to set __LOWER_E maxhits=21 and > __E_LIKE_LETTER maxhits=211 for the clause to evaluate as true? > > body __LOWER_E /e/i > tflags __LOWER_E multiple > replace_rules __E_LIKE_LETTER > body __E_LIKE_LETTER /<E>/ > tflags __E_LIKE_LETTER multiple > meta MIXED_ES ( __LOWER_E > 20 ) && ( __E_LIKE_LETTER > > ( (__LOWER_E * 14 ) / 10) ) && ( __E_LIKE_LETTER > ( 10 * __LOWER_E ) ) > describe MIXED_ES Too many es are not es
Also consider limiting __HAS_IMG_SRC, __HAS_HREF, __HAS_IMG_SRC_ONECASE, __HAS_HREF_ONECASE I would use non-greedy .*? in all those also /^[^>].*<img src=/i