Понадобилось мне вылавливать из строки (из реферера) часть, которая (для примера) расположена от &search= до следующего & либо, если его нет, то до конца строки. Ну и стартовая последовательность может быть &search=, а может и ?search=. Со стартовой легко - пишем [&\?]search= и ловим таким образом оба варианта, а вот для конечной не могу понять, как сделать двухвариантно.
Т.е. /[&\?]search=](.*?)&/ нормально выдает мне строку, если далее есть &, но не выдает, если искомый текст идет до конца строки, как и должно быть. А /[&\?]search=](.*?)$/ выдает мне весь текст до конца строки даже если по дороге есть &, что тоже как и должно быть. А вот как сделать что-то типа [&$], аналогично стартовой последовательности - не понимаю .
Пока решил через заднюю часть - при применении регекспа добавляю в конец строки &.
1
Вопрос по регекспам
Автор badisoft, Jul 02 2012 12:34 PM
Сообщений в теме: 2
#1
Отправлено 02 July 2012 - 12:34 PM
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)
#2
Отправлено 02 July 2012 - 01:15 PM
собственно альтернатива
http://php.net/manua...n.parse-str.php
http://www.php.net/m...n.parse-url.php
http://php.net/manua...n.parse-str.php
http://www.php.net/m...n.parse-url.php
#3
Отправлено 02 July 2012 - 07:40 PM
Не катит. Оно не позволяет единообразно и в цикле (!) выделить нужную подстроку и изсобственно альтернатива
/topic/922-делаем-развесистый-фильтр-товаров-обкатка-нап/page__st__140__p__20611__hl__парсер__fromsearch__1
и из
/yandsearch?clid=9582&text=texet tb-750hd дата выхода&lr=213
а регекспы позволяют на ура, задав массив старт-ендовых шаблонов .
Но все равно спасибо, я как-то упустил parse_url(), очень пригодится в других местах.
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)