我想通过使用正则表达式将<
和>
替换为<
和>
,而不是Perl中的<img src="">
和<a href="">text</a>
标记:< / p>
$a= qq~<a href="">test</a> <script> <img src="">~;
$a =~ s/<([^img|a])/<$1/ig;
$a =~ s/([^<a(.*?)])>/$1>/ig;
print "\n$a\n";
但它取代了内部'&gt;'也喜欢
<a href="">test</a> <script> <img src="">
答案 0 :(得分:1)
您可以尝试这种直截了当的方法:
$a =~ s/</</g;
$a =~ s/>/>/g;
# Fix "a" & "img"
$a =~ s/<a\s(.*?)>(.*?)<\/a>/<a $1>$2<\/a>/g;
$a =~ s/<img\s(.*?)>/<img $1>/g;
注意:
[^img|a]
是not i,m,g,a or |
如果您需要查找<
后面没有img
或a
,请使用否定前瞻:
/<(?!img|a)/