OT: REGEXP

Peter Russell pete at enitech.com.au
Wed Dec 13 23:39:03 GMT 2006


Thanks so much for the clear explanation guys, really appreciate it.

As recommended i am going for the
 >> /^user at domain\.com(\.au)?$/
 >>
 >> That will only match exactly "user at domain.com" or "user at domain.com.au"

It does exactly what i need.

Thanks again
Pete

Glenn Steen wrote:
> On 12/12/06, Matt Kettler <mkettler at evi-inc.com> wrote:
>> Peter Russell wrote:
>> > I have postfix recipient maps and some one on here once helped me 
>> format
>> > the content using regexp so i could create one entry that covered
>> > multiple formats. I need to change that but am almost clueless as to 
>> how.
>> >
>> > Could some one offer a suggestion on how to write the following as a
>> > regexp.
>> >
>> > Current                Required
>> > user at domain.com    OK        user at domain.com        OK
>> >                 user at domain.com.au    OK
>> >
>> > Is the REGEXP something like
>> > /user at domain/.[com|/.com/.au]    OK
>>
>> Disclaimer: I know regexes VERY well, but postfix not at all.
> Well, I'll comment on the postfix side then:-). ISTR I was the one
> helping Pete out last time:-).
> (snip)
>> Provided there's not some weirdness in postfix that forces regexes
>> to match full-text, you can simplify further to:
> No "weirdness" to talk about. Postfix supports both POSIX regexps and
> Perl compatible regexps ("man regexp_table pcre_table" shows the
> difference in the postfix config, "man [5|7] regex" or "man 7
> re_format" (or similar, depending on OS) documents POSIX REs, while
> the usual perl docs on REs document the pcre part).
> In an access type file, one needs to remember that when using REs,
> postfix will not do the "magic exploding" of the address into its
> constituent parts (local/domain etc), but other than that... No real
> weirdness at all;-).
> 
>> 6) If the substring matching pointed out in 5 is over-broad for you, 
>> you can fix
>> 4 by ending anchors for beginning and end of input:
>>
>> /^user at domain\.com(\.au)?$/
>>
>> That will only match exactly "user at domain.com" or "user at domain.com.au"
> 
> This is the one I'd recommend you to use Pete.
> Keep in mind that although the RE tables are easier to maintain, the
> indexed ones are faster, and have some "magic" to make rules based on
> part(s) of the address. I wont deny that it'd be a two-line thing for
> this case, though... If you generate them with a script (and the set
> is fairly huge), you'd perhaps best try and time lookups on the
> different table types as described in the respective man pages ("less
> /etc/postfix/access" should contain the info on a regular indexed
> access file).
> 
> Other than that... You'll be very well off with Matts (excellently
> explained) RE above.
> 


More information about the MailScanner mailing list