I think the advice of others about using an (X|HT)ML parser to avoid certain "URLs" (whatever that means in your particular circumstances) is wisely given and well taken. However, if you can clearly define a "URL" in the context of your data (and that's a big if!), here's a neat approach that will work. (This needs Perl version 5.10+ regex extensions.) (Untested)
Please see Special Backtracking Control Verbs for (*SKIP) (*FAIL) in perlre.my $digits_3_4 = qr{ \b \d{3,4} \b }xms; my $url = qr{ <a> ... </a> }xms; $text =~ s{ $url (*SKIP) (*FAIL) | ($digits_3_4) } {<a href="resident-info.pl?do_what=view&unit=$1"><b>$1</b></ +a>}xmsg;
Give a man a fish: <%-{-{-{-<
In reply to Re: Replacing 3 and 4 digit numbers.
by AnomalousMonk
in thread Replacing 3 and 4 digit numbers.
by htmanning
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |