首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换IMG标签

问替换IMG标签
EN

Stack Overflow用户
提问于 2012-01-18 18:10:53
回答 1查看 511关注 0票数 0

我不太擅长这个REGEX字符串替换,但我认为这个问题可以用它来解决…

我想替换这个:

代码语言:javascript
复制
<a href="http://www.example.com">
<img alt="" class="aligncenter size-full wp-image-112" height="300" src="http://www.example.comsample1.png" title="sample1" width="300" /></a>

有了这个:

代码语言:javascript
复制
<p style="text-align:center;"><a href="http://www.example.com">
<img alt="" class="aligncenter size-full wp-image-112" height="300" src="http://www.example.comsample1.png" title="sample1" width="300" /></a></p>

还有这个(如果没有给出链接):

代码语言:javascript
复制
<img alt="" class="aligncenter size-full wp-image-112" height="300" src="http://www.example.comsample1.png" title="sample1" width="300" />

有了这个:

代码语言:javascript
复制
<p style="text-align:center;">
<img alt="" class="aligncenter size-full wp-image-112" height="300" src="http://www.example.comsample1.png" title="sample1" width="300" /></p>

我怎么才能让它工作呢?(搜索关键字是‘class=’对齐中心',如果这个存在于IMG标签中,那么我需要替换)

可能会有许多IMG或标签需要替换,而不只是一个!

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-18 18:25:44

您可能需要两个正则表达式,一个用于img (确保在<img />标记之前或之后没有<a,什么是look ahead,您将需要负向前看断言,因此它将如下所示:

代码语言:javascript
复制
$text = preg_replace( '~<img alt="" class="aligncenter size-full wp-image-112"([^<>]+)/>\s*(?!</a)~mi', '<p style="text-align:center;">\0</p>', $text);

m将匹配\s*中的新行,i使正则表达式不区分大小写,\0引用整个匹配的文本

<a ...><img />的替换将类似于:

代码语言:javascript
复制
$text = preg_replace( '~<a href="([^"]+)"><img alt="" class="aligncenter size-full wp-image-112"([^<>]+)/>\s*</a>~mi', '<p style="text-align:center;">\0</p>', $text);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8908357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档