регулярное выражение для preg_replace: отдельный путь и имя файла

В 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="$1" data-img="$2"', '<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?

-2

Решение

Это должно работать: (https?:\/\/.+\/)(.+), Пример доступен Вот.

Как говорится, вы должен Посмотрите, возможно ли объединить этот подход с анализом DOM, чтобы вы могли сначала извлечь нужное свойство.

1

Другие решения

Вы можете попробовать ниже,

preg_replace('~src="(.*?\/)([^/"]*)"~', 'src="" data-path="\1" data-img="\2"', '<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

[^/"]* класс отрицанных символов, который соответствует любому символу, но не " или же / ноль или более раз.

1