1
我有一组内容,其中一些<img>
标签被封装在span标签内,如<span class="the-image"><img src.... /></span>
,但某些图像尚未包装。我想用preg_replace创建一个正则表达式来将这个包装添加到所有那些没有它的img标签。如何包装元素,如果尚未包装?
我有一组内容,其中一些<img>
标签被封装在span标签内,如<span class="the-image"><img src.... /></span>
,但某些图像尚未包装。我想用preg_replace创建一个正则表达式来将这个包装添加到所有那些没有它的img标签。如何包装元素,如果尚未包装?
享受!
preg_replace('/(?!\<span\sclass="the-image"\>)(<img[\sA-Z"\-_=\/.\d]*\/\>)(?!\<\/span\>)/i','<span class="the-image"\>$0</span>',$code);
Regex的实施例说明& https://regex101.com/r/cX8iL6/3
EDIT
PHP的preg_replace例如
$code = <<< EOT
<span class="the-image"><img src="123" /></span><br />
<img src="1234" /><br />
<span class="the-image"><img src="blah/blah/blah" /></span>
EOT;
$code = preg_replace('/(?!\<span\sclass="the-image"\>)(<img[\sA-Z"\-_=\/.\d]*\/\>)(?!\<\/span\>)/i','<span class="the-image"\>$0</span>',$code);
/* $code will become this
<span class="the-image"><img src="123" /></span><br />
<span class="the-image"><img src="1234" /></span><br />
<span class="the-image"><img src="blah/blah/blah" /></span>
*/
编辑2更改正则表达式来和PHP,以反映所需的OP ANSW呃
你确定吗?你仍然有第二张图像的开放跨度。 – aslamdoctor
是的,这将使它所以 '' 将成为 '' –
链接没有做替换,它只是显示了如何将正则表达式匹配 –