preg_replace 的正则表达式:单独的路径和文件名

regex for preg_replace: separate path and filename

在PHP我尝试实现改变一个字符串:

<img class="alignnone size-medium wp-image-18" src="http://localhost/wp-content/uploads/2015/02/300x149-jquerymobile.jpg" alt="jquerymobile" width="300" height="149">

对此:

<img class="alignnone size-medium wp-image-18" src="" data-path="http://localhost/wp-content/uploads/2015/02/" data-img="300x149-jquerymobile.jpg" alt="jquerymobile" width="300" height="149">

我想用

preg_replace('/src="(what-is-a-path-regex)(.*)"/', 'src="" data-path="" data-img=""', '<img class="alignnone size-medium wp-image-18" src="http://localhost/wp-content/uploads/2015/02/300x149-jquerymobile.jpg" alt="jquerymobile" width="300" height="149">')

用什么正则表达式替换 "wat-is-a-path-regex"?

这应该有效:(https?:\/\/.+\/)(.+)。提供了一个示例 here.

也就是说,您 应该 看看是否可以将此方法与 DOM 解析结合起来,以便您可以提取 属性 您首先需要

你可以试试下面的方法,

preg_replace('~src="(.*?\/)([^/"]*)"~', 'src="" data-path="" data-img=""', '<img class="alignnone size-medium wp-image-18" src="http://localhost/wp-content/uploads/2015/02/300x149-jquerymobile.jpg" alt="jquerymobile" width="300" height="149">');

DEMO

[^/"]* 否定字符 class 匹配任何字符但不匹配 "/ 零次或多次。