如何利用preg replace或preg_match_all替换成加工后的字符串

我要匹配出一html字符串中,所有的<img……/>标签,并在每一个匹配到的字符串中的相应位置中添加style="float:right;",然后再放回原html字符串中... 我要匹配出一html字符串中,所有的<img …… />标签,并在每一个匹配到的字符串中的相应位置中添加style="float:right;",然后再放回原html字符串中。(使网页中的图片集体右对齐)
我想到利用preg_replace,但我只能用其匹配出<img …… />标签,而无法在匹配项中加上我想加入的字符串。

如果利用preg_match_all的话,能得到匹配的数组,然后再加入要插入的字符串,但在放回原html字符串时又很麻烦。

希望大家能帮我想想办法,非常感谢!(我使用的是PHP语言)
由于每个img标签可能要个性化修改,不能直接用str_replace来实现,如:
str_replace("src=","style='float:right' src=",HTMLStr)

这样不行,因为非img的src也会被修改。
展开
 我来答
我为科学疯
2017-04-07 · TA获得超过197个赞
知道答主
回答量:50
采纳率:0%
帮助的人:39.6万
展开全部
正则这样写"/(<img[^<>]+)(src=[\"'].*?[\"'])([^<>]*\/?>)/is"
再用preg_replace($preg,"\\1 style=\"float:right;\" \\2\\3",$str);
下面是一个我自己写的一个将所有<img>标签加上style="float:right;"的例子
a.txt如下:
<div class="clearfix goodsBox">
<a href="goods.php?id=24">
<img src="images/111.jpg" alt="诺基亚5530"/></a><br />
<a href="goods.php?id=25">
<img src="images/222.jpg" alt="摩托罗拉M80"/></a><br />
<a href="goods.php?id=26">
<img src="images/333.jpg" alt="三星A50"/></a><br />
<a href="goods.php?id=27">
<img src="images/444.jpg" alt="诺基亚N97"/></a><br />
<a href="goods.php?id=28">
<img src="images/555.jpg" alt="LG5280"/></a><br />
<a href="goods.php?id=29">
<img src="images/666.jpg" alt="lenovoA38"/></a><br />
</div>
php文件如下:

<?php
$str=file_get_contents("a.txt");
$preg="/(<img[^<>]+)(src=[\"'].*?[\"'])([^<>]*\/?>)/i";
$newStr=preg_replace($preg,"\\1 style=\"float:right;\" \\2\\3",$str);
var_dump($newStr);
echo $newStr;
// echo $str;
?>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式