У меня есть $source var, который я получаю с помощью curl и содержит следующую закомментированную строку
$source
//"url":"http://lh5.ggpht.com/_EpgGIto9934/TKXKqAw7uFI/AAAAAAAAGrM/PrQiCNyUdEo/8827.jpg"," $regex = "!url/"/:/"(.*)8827/.jpg!U"; preg_match_all($regex, $source, $res); var_dump($res);
Я хочу получить адрес http://.....jpg Что я делаю неправильно? Спасибо
http://.....jpg
Это похоже на JSON. Если это так, вам не понадобятся регулярные выражения для этого. Вы можете просто использовать json_decode
<?php $s = "//\"url\":\"http://lh5.ggpht.com/_EpgGIto9934/TKXKqAw7uFI/AAAAAAAAGrM/PrQiCNyUdEo/8827.jpg\",\""; $regex = '/http(.+)\.jpg/'; preg_match($regex, $s, $matches); echo $matches[0]; ?>
<?php $source = '"url":"http://lh5.ggpht.com/_EpgGIto9934/TKXKqAw7uFI/AAAAAAAAGrM/PrQiCNyUdEo/8827.jpg","'; $regex = '/^.*\/([^\/]+\.jpg).*$/'; preg_match($regex, $source, $res); print_r($res); $jpg = $res[1]; ?>
Вы можете использовать это регулярное выражение
http.+\....(?=",".+)
, которое будет работать для всех трех буквенных расширений.