[Mailman-Users] Help with regular expression filters

Mark Sapiro mark at msapiro.net
Tue Feb 3 22:43:09 CET 2015


On 02/03/2015 12:08 PM, e.c. wrote:
> At least in Emacs the following regexp works
> 
> \_<test\_>
> 
> that finds 'test' but not 'fastest' or 'testy'
> 
> bash, perl, ruby, etc. may have different ways of doing the same thing.


In Mailman, with Python regexps
<https://docs.python.org/2/library/re.html>, I would use

^Subject:.*\Wtest\W

\W matches any 'non-word' character and is equivalent to [^a-zA-Z0-9_],
i.e. anything including new-line which is not a letter, digit or underscore.

>>> import re
>>> cre = re.compile('^Subject:.*\Wtest\W', re.IGNORECASE)
>>> s1 = """Subject: This is a test of mailman."""
>>> s2 = """Subject: This is a test."""
>>> s3 = """Subject: I am testing..."""
>>> s4 = """Subject: This is a test
... """
>>> cre.search(s1)
<_sre.SRE_Match object at 0x7f740d0abac0>
>>> cre.search(s2)
<_sre.SRE_Match object at 0x7f740d0abb28>
>>> cre.search(s3)
>>> cre.search(s4)
<_sre.SRE_Match object at 0x7f740d0abac0>

-- 
Mark Sapiro <mark at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan


More information about the Mailman-Users mailing list