欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

求替换全局img图片的正则表达式

程序员文章站 2022-06-16 21:03:00
...
如题
现在有一字符串是

$content = '

求替换全局img图片的正则表达式求替换全局img图片的正则表达式test

';

想要将这字符里面的 images/tmp 都替换成 images/pub

本人已经写了一个函数
	public static function replace_img_publish_path($content){		$pattern='/()/';		$replacement="\${1}images/pub/\${3}";		print  preg_replace($pattern, $replacement, $content);		exit;	}


输出结果为

求替换全局img图片的正则表达式求替换全局img图片的正则表达式test



只替换了最后一个img标签

如何才能全部都替换?


回复讨论(解决方案)

$content = '

求替换全局img图片的正则表达式求替换全局img图片的正则表达式test

';$content = preg_replace('#(?

求替换全局img图片的正则表达式求替换全局img图片的正则表达式test


你没有防止贪婪匹配。

$pattern='/()/';

你写的方法加一个参数U就可以了。
加上U,将懒惰匹配 变成 贪婪匹配。

$pattern='/()/ U';

测试例子:

$content = '

求替换全局img图片的正则表达式求替换全局img图片的正则表达式test

';replace_img_publish_path($content);function replace_img_publish_path($content){ $pattern='/()/U'; $replacement="\${1}images/pub/\${3}"; print preg_replace($pattern, $replacement, $content); exit;}


替换后:

求替换全局img图片的正则表达式求替换全局img图片的正则表达式test