One possible approach:
>perl -wMstrict -le "my $bad = 'x &gt;lt;amp; y >amp;lt; z &>< y lt;gt; z'; print qq{'$bad'}; ;; my $tity = qr{ (?: amp | gt | lt) ; }xms; ;; (my $fixed = $bad) =~ s{ (?: (?: \G (?<! \A)) | &) $tity \K (?= $tity) } '&'xmsg; print qq{'$fixed'}; " 'x &gt;lt;amp; y >amp;lt; z &>< y lt;gt; z' 'x &><& y >&< z &>< y lt;gt; z'
In reply to Re: Question for regex experts
by AnomalousMonk
in thread Question for regex experts
by evgen-i
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |