Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск и замена
 
 автор: Zilog   (13.04.2010 в 16:51)   письмо автору
 
 

шаблон
    $pattern = "/([?&])$varname?=.*?(?=&|#|\z)/";


нормально отрабатывает, если переменная varname просто текст.
скажем abcd=44 он находит.

Проблема в том, что переменная на входа такова: absd[123], т.е. с квадратными скобками, из за чего выражение перестаёт работать.

как быть?
спасибо.

  Ответить  
 
 автор: Trianon   (13.04.2010 в 21:06)   письмо автору
 
   для: Zilog   (13.04.2010 в 16:51)
 

>шаблон $pattern = "/([?&])$varname?=.*?(?=&|#|\z)/";

Это не шаблон. Шаблона Вы не привели.
Это выражение на языке php, которое строку с этим шаблоном некорректно вычисляет.
Для динамического формирования шаблонов имеется соответствующая функция среди PCRE-инструментария.

  Ответить  
 
 автор: ZIlog   (13.04.2010 в 23:51)   письмо автору
 
   для: Trianon   (13.04.2010 в 21:06)
 

спасибо,
разобрался - надо экранировать скобки слэшем.

  Ответить  
 
 автор: Trianon   (13.04.2010 в 23:55)   письмо автору
 
   для: ZIlog   (13.04.2010 в 23:51)
 

именно.
А экранированием занимается preg_quote()

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования