Hi All,
Been using Perl for a long time, but tonight something has me beat.
I am trying to capture certain IP's from mail log lines, and this all worked well until I changed the code a bit to capture a new match. For some reason, this code here:
#!/usr/bin/perl -w my $line = "May 25 10:44:06 postfix/smtpd[6992]: NOQUEUE: reject: RCPT + from 13-34-221-131.virtuals.cl[131.221.34.13]: 454 4.7.1 <eax_64@yah +oo.com>: Relay access denied; from=<xo@ore.net> to=<eax_64@yahoo.com> + proto=ESMTP helo=<192.168.0.133>"; if ($line =~ /Relay access denied/) { $line =~ s/.*\]: //; #print $line; $line =~ s/.*\[//; $line =~ s/\].*//; chomp($line); print $line; }
matches the second ']:' first, and fubars the whole logic.
I have tried researching this, but got nowhere due to the noise.
Any ideas what is going on?
Thanks,
Nick
P.S. I fixed it up another way, but I am intrigued.
In reply to Regex substitute matches second match first? by Linicks
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |