preg_replace 条件

Conditionals on preg_replace

我正在使用 preg_replace 在图片下方添加文字。

My regex 看起来像:

/<img.+?>/i

单独使用 img 标签时正常工作

<img src="image.jpg" /> Lorem ipsum

然而,当图像包含在 link 中时,文本也会被包裹在 link 中:

<a href="http://www.google.com/"><img src="image.jpg" /> Lorem ipsum</a>

Image with problem

防止这种行为的最佳方法是什么?

原来并没有那么难。我相信这就是你想要的东西:

/<img.+\.\w+".|\/>/i

我做的主要事情是让匹配在到达扩展名 (.\w+) 的末尾时停止,并且还在末尾包含引号,它解释了该部分后面的 "。然后我添加了一个 OR 所以 /> 部分包含在比赛中,而不是其他垃圾。我打算尝试环顾那个部分,但意识到这比它需要的更难!

希望对您有所帮助!