... and yet another way to do it, this time using a subroutine instead of putting everything inside a single RegEx (added readability for those who like that kinda coding style).
my @aTests = (<DATA>); for (@aTests){ s/\]|\[//gm; ### strip off sq brackets s/^\s*|\s*$//gm; ### trim whitespace ### put fields into array ref and spit out href print &spitHref([split /\s*\|\s*/,$_]); print "\n-----\n"; } sub spitHref(){ my $aFields = shift || die"required array ref missing"; my $iFlds = scalar @{$aFields}; return ($iFlds == 0) ? "ERROR: bad data" : ($iFlds == 1) ? qq^<a href="$aFields->[0]">$aFields->[0]</a>^ : ($iFlds == 2) ? qq^<a href="$aFields->[0]">$aFields->[1]</a>^ : ($iFlds == 3) ? qq^<a href="$aFields->[0]" target="$aFields->[2] +">$aFields->[1]</a>^ : 'ERROR: unexpected data' ; }###end_sub __DATA__ [] [www.perlmonks.org] [www1.test.com|test page1] [www2.test.com|test page2|new] [www3.test.com|test page3|] [ www4.test.com | test page4 | ] [ camelCase|Local Link in Blog | new ]
In reply to Re: Link regex
by dimar
in thread Link regex
by coldfingertips
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |