@Denomales有很多类似的话题 How to search urls that are not in any html tag and then turn them into hyperlinks?
但是我面临着稍微不同的情绪
在文本字段中,我将图像包含在[IMG] [/ IMG]标记内,例如
[img]http://i58.tinypic.com/i3yxar.jpg[/img]
并且有简单的图像网址,即没有[IMG]标记,例如
http://www.jonco48.com/blog/tongue1.jpg
我想找到所有普通图片网址并在其中加入[IMG]标签(使用preg_replace或类似的功能),以便上面的网址变为
[img]http://www.jonco48.com/blog/tongue1.jpg[img]
现在真正的挑战是语句应该跳过那些已经包含在[img] bb标签中的图像URL,那么我怎么能这样做我的正则表达式理解很差 感谢
答案 0 :(得分:1)
正则表达式:
(?<!\[img\])(https?:\/\/(?:www\.)?[\w.]+\.[a-z]{2,6}(?:\/\w+)*(?:\.\w+)?)(?!\[\/img\])
的更换:
[img]\1[/img]
答案 1 :(得分:0)
这可能会帮助您使用替代。
((\[img\])?(http:.*?\.(jpg|png|gif))(\[\/img\])?)
注意:如果需要,也可以更改内部部分以验证URL。
示例代码:
$re = "/((\\[img\\])?(http:.*?\\.(jpg|png|gif))(\\[\\/img\\])?)/i";
$str = "[img]http://i58.tinypic.com/i3yxar.jpg[/img] http://i58.tinypic.com/i3yxar.jpg";
$subst = '[img]$3[/img]';
$result = preg_replace($re, $subst, $str);