perl中正则如何替换html代码中<p>标签

来源:百度知道 编辑:UC知道 时间:2024/05/23 12:30:18
$content=~
<P align=center><IMG src="/uploads/allimg/090915/11113M342-4.jpg" border=0></P>
<P align='center'><IMG src="/uploads/allimg/090915/11113M342-4.jpg" border=0></P>
<P align="center"><IMG src="/uploads/allimg/090915/11113M342-4.jpg" border=0></P>
~;

正确结果应为
[align=center]<IMG src="/uploads/allimg/090915/11113M342-4.jpg" border=0>[/align]
[align=center]<IMG src="/uploads/allimg/090915/11113M342-4.jpg" border=0>[/align]
[align=center]<IMG src="/uploads/allimg/090915/11113M342-4.jpg" border=0>[/align]

如何才能使下面正则能正确处理以上html代码

$content=~s/<p[^>]*align=[\'\"\s]*([^\s\'\"]+)[^>]*>/[align=$1]/gi;
$content=~s/<\/p>/[\/align]/gi;
<P align=center><IMG src="/uploads/allimg/09

$content=~s/<P\s+align=[\'\"\s]*(\w+)[\'\"\s]*>/[align=$1]/gi;
$content=~s/<\/p>/[\/align]/gi;

此正则只处理问题补充里面前三行 第三行无法匹配.

$content=<<<EOT
<P align=center><IMG src="/uploads/allimg/090915/11113M342-4.jpg" border=0></P>
<P align='center'><IMG src="/uploads/allimg/090915/11113M342-4.jpg" border=0></P>
<P align="center"><IMG src="/uploads/allimg/090915/11113M342-4.jpg" border=0></P>
EOT;
$content=preg_replace("/<P align=(\'|\")?center(\'|\")?>(.*)<\/P>/i", "[align=centent]\\3[/align]", $content);
echo $content;