Задать вопрос
@game802

Какое регулярное выражение написать?

Добрый день, уважаемые знатоки... Никак не могу составить регулярное выражение для следующего примера:
У меня есть входные данные:
<img src=\"http://sitename.ru/uploads/posts/2016-09/1473962750_o3oox6ibygezyyt7acqyi6tlsti-840x420.jpg\" alt=\"\" border=\"0\" style=\"float: none; margin: 0px;\" title=\"\" />Где же скрылись те заповедные территории, где живут красавчики?&nbsp;&nbsp;Мы сегодня будем измерять мужчин по их здоровому внешнему виду, так сказать «экологически чистый продукт»

или такие
<div style=\"text-align: center;\"><img src=\"http://sitename.ru/uploads/posts/2016-09/1473963049_1.jpg\" alt=\"\" border=\"0\" style=\"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;\" /><span style=\"letter-spacing: 0px; line-height: 1.5em; word-spacing: 1.1px; font-family: \">У каждой работы — и в офисе, и во фрилансе — есть свои прелести и недостатки. А вот какие — это и покажут следующие иллюстрации.&nbsp;</span>

Каким образом можно вытащить ссылку из img? Чтобы она следующий вид:
К первому примеру:
http://sitename.ru/uploads/posts/2016-09/1473962750_o3oox6ibygezyyt7acqyi6tlsti-840x420.jpg

Ко второму примеру:
http://sitename.ru/uploads/posts/2016-09/1473963049_1.jpg

Большое спасибо за помощь!
  • Вопрос задан
  • 184 просмотра
Подписаться 1 Оценить 2 комментария
Решения вопроса 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
/src=[\\"']+((.*\/\/|)([\/a-z0-9_%-\.]+\.(jpg|png|gif))(.*?))[\\"']+/gi

Результат совпадения по группам:
1-я - полный путь к файлу + get-параметры.
2-я - протокол
3-я - полный путь к файлу без протокола
4-я - расширение изображения
5-я - get-параметры

$re = '/src=[\\\\"\']+((.*\/\/|)([\/a-z0-9_%-\.]+\.(jpg|png|gif))(.*?))[\\\\"\']+/i';
$str = '<div style=\\"text-align: center;\\"><img src=\\"http://sitename.ru/uploads/posts/2016-09/1473963049_1.jpg\\" alt=\\"\\" border=\\"0\\" style=\\"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;\\" /><span style=\\"letter-spacing: 0px; line-height: 1.5em; word-spacing: 1.1px; font-family: \\">У каждой работы — и в офисе, и во фрилансе — есть свои прелести и недостатки. А вот какие — это и покажут следующие иллюстрации.&nbsp;</span>';

preg_match_all($re, $str, $matches);

// Print the entire match result
print_r($matches);
Ответ написан
slo_nik
@slo_nik Куратор тега PHP
Добрый вечер.
Попробуйте начать со следующего:
$pattern = "#\<img src=\"([^\s]+)\" #";
preg_match_all($pattern, $string, $matches);
echo "<pre>";
print_r($matches[1]);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
/src=\\"(.*)\\" a/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы