At 2002-02-19 22:25 -0600, David Douthitt wrote:
>On 2/19/02 at 6:25 AM, Mike Noyes <[EMAIL PROTECTED]>
>wrote:
> > OT: regexp question
> > BTW, is it possible to use a not bracket expression
> > against a string?
> > Here is an example that doesn't work. :-(
> >
> > 'Content-Type: .*[^\(plain\|signed\)]'
>
>The "(...|...)" construct is not recognized by much - I know egrep
>(grep -e) recognizes it, but grep does not.
>
>If you have UNIX in a Nutshell (worth getting!) look up the regexp
>section - in mine, that's one of the most commonly used parts.  Not
>every regexp function is available everywhere there's regexps to be
>had (like vi, grep, egrep, sed...)
>
>Also, the way you've got it there, you are looking for anything that
>starts with:
<snip>

David,
I've done some homework, and discovered the following things: SF 
lists.sf.net server uses Mailman 2.0.5, and Python 2.1.1. Mailman uses the 
Python re module to parse regex in Privacy Options - Hold posts.

I believe I should be able to use the Python (?!...) negative lookahead 
assertion to filter messages by content-type. However, I'm having some 
difficulty generating the correct regex. Would you or someone else please 
enlighten me? Thanks.

This regex string doesn't work.
Content-Type: .*(?!plain--signed)

Other ignorant attempts omitted.

I haven't tried this string yet.
Content-Type: .*(?!plain|signed).*$


The Mailman Python code for Hold posts is:
MailList.py
for line in string.split(self.bounce_matching_headers, '\n'):
     stripped = string.strip(line)
     if not stripped or (stripped[0] == "#"):
         # Skip blank lines and lines *starting* with a '#'.
         continue
     else:
         try:
             h, e = re.split(":[ \t]*", stripped, 1)
             try:
                 re.compile(e)
                 all.append((h, e, stripped))
             except re.error, cause:
                 # The regexp in this line is malformed -- log it
                 # and ignore it
                 syslog('config',
                        '%s - bad regexp %s [%s] '
                        'in bounce_matching_header line %s'
                        % (self.real_name, `e`, `cause`, `stripped`))
         except ValueError:
             # Whoops - some bad data got by:
             syslog('config', '%s - bad bounce_matching_header line %s'
                    % (self.real_name, `stripped`))
return all

--
Mike Noyes <[EMAIL PROTECTED]>
http://sourceforge.net/users/mhnoyes/
http://leaf.sourceforge.net/content.php?menu=1000&page_id=4


_______________________________________________
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel

Reply via email to