Простой вопрос preg_match - PullRequest
1 голос
/ 29 марта 2011

Следующее регулярное выражение получает все изображения src, но показывает его с src=" в начале и " в конце пути.

Как я могу удалить его и показать только путь?

preg_match('/src="(.*?)"/i' , $content1 , $matches);

Ответы [ 3 ]

4 голосов
/ 29 марта 2011

Вы почти все делаете правильно. Регулярное выражение верно, но:

echo $matches[1];

Это выведет первый захваченный подшаблон. Первое совпадение ($matches[0]) всегда будет содержать полный текст, который был сопоставлен, включая src="" битов.

3 голосов
/ 29 марта 2011

Код:

$re = '/(?<=src=")(?:.*?)(?=")/ui';
$txt = '<img src="http://www.gravatar.com/avatar/6f5de9?s=32&amp;d=identicon&amp;r=PG" height="32" width="32" alt="">';

$nMatches = preg_match($re, $txt, $aMatches);

Выход:

Array
(
    [0] => http://www.gravatar.com/avatar/6f5de9?s=32&d=identicon&r=PG
)
2 голосов
/ 29 марта 2011

$ match будет содержать весь сопоставленный шаблон в первом элементе, за которым следуют элементы для каждого подшаблона. В этом случае вам нужно $ match [1] для того, что вы хотите.

...