Use Regexp::Common:
use Regexp::Common qw /URI/;
my $re_a_tag = qr/<a\s+.*?>.*<\/a>/si ;
my $html = q`
some link:
<a href="http://www.perl.com">www.perl.com</a>
http://www.perlmonks.com
by!
`;
my @chunks = split(/($re_a_tag)/si , $html) ;
foreach my $chunks_i ( @chunks ) {
next if $chunks_i =~ /$re_a_tag/ ;
$chunks_i =~ s/($RE{URI}{HTTP})/<a href="$1">$1<\/a>/gsi ;
}
$html = join('' , @chunks) ;
print "$html\n" ;
Output:
some link:
<a href="http://www.perl.com">www.perl.com</a>
<a href="http://www.perlmonks.com">http://www.perlmonks.com</a>
by!
Enjoy!
By gmpassos
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|