PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

preg_replace怎么将src="//m.sbmmt.com/m/n1/images替换成src="images

原创
2016-06-23 13:31:40 830浏览

preg_replace怎么将src="//m.sbmmt.com/m/n1/images替换成src="images
  src="/n1/images 中的n1 可能是其他字符,比如说m2或者py等。
不懂正则替换,请指点。


回复讨论(解决方案)

$s =<<< TXTTXT;echo preg_replace('#(?<=src="//m.sbmmt.com/m/faq/).*/([^"]+)#', '$1', $s);

$s =<<< TXTTXT;echo preg_replace('#(?<=src="//m.sbmmt.com/m/faq/).*/([^"]+)#', '$1', $s);



谢谢版主,但如果是   怎么办?

    替换成      类似的应该怎么做,

你的需求不明确,前后矛盾,到底保留文件本身,还是保留文件名以及他的父级目录。

你的需求不明确,前后矛盾,到底保留文件本身,还是保留文件名以及他的父级目录。



其实就是将    替换成    
意思是将 images前面的目录删除

$str="src='//m.sbmmt.com/m/n1sss/images'“;

$zz="/src='//m.sbmmt.com/m/faq/\/.*\/(.*?)'/";

echo preg_replace($zz,'$1',$str);

$str="src='//m.sbmmt.com/m/n1sss/images'“;

$zz="/src='//m.sbmmt.com/m/faq/\/.*\/(.*?)'/";

echo preg_replace($zz,'$1',$str);



这个 $zz="/src='//m.sbmmt.com/m/faq/\/.*\/(.*?)'/";  在PHP里面就有错误

TXT;$pattern="/\/.*\/(.*?)\/(.*?)/";echo preg_replace($pattern, '$1/$2', $s);?>

TXT;$pattern="/\/.*\/(.*?)\/(.*?)/";echo preg_replace($pattern, '$1/$2', $s);?>



谢谢版主的回答,可能我的问题说的不是很明确,
利用preg_replace怎么将images前面的目录删除掉
将  或者

TXT;$pattern="/\/.*\/(.*?)\/(.*?)/";echo preg_replace($pattern, '$1/$2', $s);?>



还请再帮帮忙

$s =<<< TXTTXT;$n = 0; //只留文件名echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 1; //保留一级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 2; //保留二级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);

$s =<<< TXTTXT;$n = 0; //只留文件名echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 1; //保留一级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 2; //保留二级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);



$s =<<< TXTTXT;$n = 0; //只留文件名echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 1; //保留一级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 2; //保留二级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);



$s =<<< TXTTXT;$n = 0; //只留文件名echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 1; //保留一级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 2; //保留二级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);



谢谢版主的回答,我有一个文件夹images,我就想保留images文件夹以及后面的目录,images后面的目录有几级是未知的。还请版主帮个忙

$str="src='//m.sbmmt.com/m/n1sss/images'“;

$zz="/src='//m.sbmmt.com/m/faq/\/.*\/(.*?)'/";

echo preg_replace($zz,'$1',$str);




我都运行过的没问题,才发出来的啊
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。