$want_to_be = ['aaaaaa', 'bbbbbb'];
$stem = '<p>这是图片一,但是地址不对<img src="111111" width="100">这是图片二,地址也不对</p ><span><img src="222222"></span>';
$pattern='/src=\"(.+?)\".*?/';
preg_match_all($pattern, $stem, $match);
$src_array = array();
if ($match)
$src_array = $match[1];
var_dump(str_replace($src_array, $want_to_be, $stem));
这里匹配src后面的图片地址,会匹配所有的,转换成想要的地址
原字符串:
执行结果:
简单说一下这个正则什么意思:
/src=\"(.+?)\".*?/
src= 匹配'src='字符串后面的内容;
\" 转义符"表示匹配双引号(这里想要仅仅字符串匹配到src=后面开始的双引号);
(.+?) 匹配到就不往后继续查字符串下面了(这里指的是只匹配一个,即src=后面开始的双引号);
\" 转义符"表示匹配双引号(这里是匹配到src="111111后面结束的双引号);
.*? 继续匹配(可以多个)后面字符串中符合上述条件的字符串;