[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Составить регулярное выражение
RCuPeR
Есть строка вида s.iconStyle.href = "/images/st1234/"произвольное значение".png";

Из этой строки нужно вытянуть /images/st1234/"произвольное значение".png.
Кто-то может помочь ?



Спустя 1 минута, 9 секунд (20.06.2011 - 15:18) DedMorozzz написал(а):
есть идеи?

Спустя 23 минуты, 18 секунд (20.06.2011 - 15:41) RCuPeR написал(а):
К сожалению, нету =(

Спустя 28 минут, 46 секунд (20.06.2011 - 16:10) Winston написал(а):
Так ?
......................
Ждем идей...

Спустя 2 минуты, 38 секунд (20.06.2011 - 16:13) DedMorozzz написал(а):
PHPprogramer, нет не так. Задача крайне простая. У ТС так иль иначе должны возникнуть идеи как сие сделать. Предлагаю подождать пока озвучит их

Спустя 18 минут, 18 секунд (20.06.2011 - 16:31) RCuPeR написал(а):
Ну разве что алгоритм.
Есть страница, НЕ структурирована, в ней есть подобные ссылочки на картинки, нужно вырвать все эти ссылки регулярным выражением.
Все это буду парсить, но проблема в том, что с регулярками вообще не знаком =(


$ch = curl_init ();
curl_setopt ($ch , CURLOPT_URL , "***");
curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7");
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );
$content = curl_exec($ch);
curl_close($ch);

preg_match_all("***", $content, $matches, PREG_PATTERN_ORDER);

print_r($matches);


Спустя 1 минута, 36 секунд (20.06.2011 - 16:33) Winston написал(а):
Можешь пару тегов с ссылками выдрать и показать ?

Спустя 19 минут, 21 секунда (20.06.2011 - 16:52) RCuPeR написал(а):
Тэгов нету.
Парсинг javascript кода.

Спустя 49 секунд (20.06.2011 - 16:53) Winston написал(а):
А кусок код с ссылками ?

Спустя 8 минут, 3 секунды (20.06.2011 - 17:01) RCuPeR написал(а):
				s.iconStyle = new YMaps.IconStyle();
s.iconStyle.href = "/images/st1234/crossing_fresh.png";
s.iconStyle.size = new YMaps.Point(54, 61);
s.iconStyle.offset = new YMaps.Point(-30, -61);
placemark = new YMaps.Placemark(new YMaps.GeoPoint(37.19568400000, 55.98248300000), { hideIcon: false, hasBalloon: false, draggable: false, style: s });
map.addOverlay(placemark);*/

Спустя 13 минут, 47 секунд (20.06.2011 - 17:15) Winston написал(а):
Оно ?
preg_match_all("#s\.iconStyle\.href\s*=\s*('|\")(.*)\\1#iu", $str, $matches);    
print_r($matches[2]);

Спустя 8 секунд (20.06.2011 - 17:15) DedMorozzz написал(а):

$a = 's.iconStyle.href = "/images/st1234/"произвольное значение".png"'
$b = preg_replace('#s\.iconStyle\.href = "(/images/st1234/.*?\.png)#is','$1',$a);
echo $b;

Кавычки добавиь/убери сам, ибо не понятно где они стоят, а где нет

Спустя 4 минуты, 41 секунда (20.06.2011 - 17:19) Winston написал(а):
RCuPeR
Тебе нужен полностью адрес
Цитата
/images/st1234/произвольное_значение.png

Или только
Название картинки
Цитата
произвольное_значение.png

??

Спустя 41 минута, 52 секунды (20.06.2011 - 18:01) RCuPeR написал(а):
В общем-то работает. Спасибо, но нужен только имя картинки.

Плюс, тут ещё возник вопрос.
После парсера осталось много одинаковых вхождений, как можно очистить повторяющейся элементы ?

Спустя 13 минут, 13 секунд (20.06.2011 - 18:14) Winston написал(а):
Попробуй так
preg_match_all("#s\.iconStyle\.href\s*=\s*('|\")/images/st[0-9]*/(.*)\\1#iu", $str, $matches);
print_r(array_unique($matches[2]));

Спустя 5 минут, 44 секунды (20.06.2011 - 18:20) Winston написал(а):
Сразу не заметил, немного поправил код

Спустя 54 секунды (20.06.2011 - 18:21) RCuPeR написал(а):
Ухты! Все получилось!
Огромное вам спасибо!!!

Array
(
[0] => light_fixed.png
[1] => holeonroad_achtung.png
[2] => crossing_fresh.png
[4] => holeonroad_fresh.png
[7] => badroad_fixed.png
[8] => holeonroad_fixed.png
[11] => holeinyard_fresh.png
[14] => badroad_achtung.png
[20] => hatch_achtung.png
[23] => badroad_fresh.png
[28] => holeinyard_prosecutor.png
[32] => badroad_inprogress.png
[34] => holeinyard_gibddre.png
[43] => holeinyard_fixed.png
[45] => holeinyard_inprogress.png
[46] => badroad_gibddre.png
[47] => rails_achtung.png
[48] => holeinyard_achtung.png
[49] => holeonroad_inprogress.png
[52] => hatch_fresh.png
[53] => holeonroad_gibddre.png
[67] => rails_fresh.png
[94] => hatch_inprogress.png
[176] => hatch_fixed.png
[185] => rails_inprogress.png
[404] => policeman_inprogress.png
[480] => rails_fixed.png
[482] => policeman_fresh.png
[762] => hatch_gibddre.png
[1667] => rails_gibddre.png
[1722] => policeman_fixed.png
)

Спустя 1 минута, 27 секунд (20.06.2011 - 18:23) RCuPeR написал(а):
А че, там все нормально)

Спустя 3 минуты, 12 секунд (20.06.2011 - 18:26) Winston написал(а):
Да не за что smile.gif
Но уже пора и самому научится их писать они совсем не сложные smile.gif
Вот книга по которой я учился. Мне хватило 100 страниц, чтобы изучить и понять синтаксис, больше (пока) не осилил((. Там очень все подробно разжевано,

Спустя 1 минута, 1 секунда (20.06.2011 - 18:27) Winston написал(а):
Цитата (RCuPeR @ 20.06.2011 - 18:23)
А че, там все нормально)

Забыл бекслеш перед точками поставить.

Спустя 6 минут, 51 секунда (20.06.2011 - 18:34) RCuPeR написал(а):
Спасибо, скачал учебник. На досуге буду учится.
А то, и сам не раз заметил - регулярки, штука полезная.

Ещё раз спасибо)

Спустя 7 минут, 21 секунда (20.06.2011 - 18:41) Winston написал(а):
А блин, то походу 2-е издание ты скачал ?
Я 3-е читал
Книга

Спустя 9 минут, 55 секунд (20.06.2011 - 18:51) RCuPeR написал(а):
Да, качал 2-е издание.
Перекачаю 3-е. smile.gif


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.