[Mimedefang] string compare / matching
Joseph Brennan
brennan at columbia.edu
Fri Nov 30 12:16:07 EST 2007
Petra Humann <humann at tcs.inf.tu-dresden.de> wrote:
> my $absender = $Sender;
> $absender =~ s/^<//;
> $absender =~ s/>$//;
> $absender = lc($absender);
>
> If I write:
> if ( ! grep /$absender/, $from_header) ...
> it works, but some addresses doesn't, like "liste**recipient**@liste.com".
Beware of putting an email address into a regexp. Perl will try to
interpret characters like * as quantifiers and complain. Consider:
#!/usr/bin/perl
$thing = 'liste**recipient**@liste.com';
$string = '**recip';
if ( grep /$string/, $thing) {
print "matched\n";
}
$ perl -w test.pl
Quantifier follows nothing before HERE mark in regex ...
You can use \Q and \E to get around this:
if ( grep /\Q$string\E/, $thing)
Joseph Brennan
Columbia University Information Technology
More information about the MIMEDefang
mailing list