in reply to Replacing 3 and 4 digit numbers.
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: <%-{-{-{-<
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Replacing 3 and 4 digit numbers.
by Discipulus (Canon) on Apr 08, 2016 at 08:02 UTC | |
by Anonymous Monk on Apr 08, 2016 at 08:51 UTC | |
|
Re^2: Replacing 3 and 4 digit numbers.
by afoken (Chancellor) on Apr 08, 2016 at 16:29 UTC | |
by choroba (Cardinal) on Apr 09, 2016 at 22:52 UTC | |
by AnomalousMonk (Archbishop) on Apr 08, 2016 at 20:34 UTC | |
|
Re^2: Replacing 3 and 4 digit numbers.
by htmanning (Friar) on Apr 10, 2016 at 09:31 UTC | |
by AnomalousMonk (Archbishop) on Apr 10, 2016 at 14:52 UTC | |
by htmanning (Friar) on Apr 10, 2016 at 18:24 UTC | |
by AnomalousMonk (Archbishop) on Apr 10, 2016 at 23:21 UTC |