我有一个字符串,其中包含一些看起来像src="somethin/somethin/the_thing.ext"
的子字符串,我想将每个子字符串转换为src="the_thing.ext"
src="/1/2/3.ext" -> src="3.ext"
src="a/b/c.ext" -> src="c.ext"
src="../d/e.ext" -> src="e.ext"
src="f/g.ext" -> g.ext
src="h.ext" -> h.ext
我尝试使用preg_replace
或ereg_replace
在PHP中执行此操作
但是可以弄清楚如何对子表达式进行分组。
我的表达式由零个或多个东西组成/最后有一些文本(第一个东西可以前面只有一个/)
<?php
$string = '<img src="x.y" alt="" /> <img src="uploads/RTE.jpg"
alt="" /><br /><img src="../uploads/RTEjpg" alt="" /> <img
src="/fileadmin/CPE.ztc">'
$pattern = '/src=\"(.*?)\"/';
$replacement = 'src="';
echo ereg_replace($pattern, $replacement, $string);
?>
我坚持使用模式和replacemnt,如何在正则表达式或扩展正则表达式中编写它们?
答案 0 :(得分:0)
您需要做两件事:
答案 1 :(得分:0)
使用lookbehind和lookahead然后persistence.xml
:
preg_replace
输出:
$string = '<img src="x.y" alt="" /> <img src="uploads/RTE.jpg"
alt="" /><br /><img src="../uploads/RTE.jpg" alt="" /> <img
src="/fileadmin/CPE.ztc">';
$pattern = '/(?<=src=")[^"]+(?<=\/)/';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);