[prev in list] [next in list] [prev in thread] [next in thread] 

List:       procmail
Subject:    Re[2]: \[ works within [...] but \] doesn't
From:       Robert Allerstorfer <roal () anet ! at>
Date:       2003-11-16 0:53:32
[Download RAW message or body]

On Sat, 15 Nov 2003, 10:29 GMT-08 (19:29 local time) Bart Schaefer
wrote:

> That's because backslashes are not special inside procmail [ ] character
> classes.  The backslashes that are doing any good there are the ones in
> the substring "\\\"\`\$" -- and that's only because the entire thing is
> inside double quotes for the assignment.

> The only way to quote a ']' within a character class is to place it at the
> beginning of the class.  I'm pretty sure the same goes for a hypen as well
> -- that is, "[\-\]" is being read as "the range backslash to backslash".

> Try:

> C = "[-]['/@#_!=,;: \\\"\`\$.*+?^()]"

thanks for pointing me to the right direction. Your suggested
assignment only recognises a hyphen, followed by zero or one
characters of the other characters. I am now using

 C = "[]['/@#_!=,;:.*+?^() \\\"\`\$-]"

and it works fine.

To summarize, the things to be taken care of are:

(1) Within the "[...]" class, the first character must be ] otherwise it
causes the previous character to be the last recognized one! 
(2) The last character must be - (hyphen) otherwise it would act as
range operator
(3) The only characters that must be \ escaped are \"`$ (or are there
any additional ones?)

Finally, here is the recipe I am now successfully using against
several forms of viagra in the subject of spam mails:

:0
* $ ^Subject:.*((v|\\/)$C?(i|1)$C?(a|@)$C?g$C?r$C?(a|o))
$MYSPAM

best,
rob.



_______________________________________________
procmail mailing list
procmail@lists.RWTH-Aachen.DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic