Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Look-ahead && Look-behind 
:(
    Опции темы
MixerMsK
Дата 12.10.2009, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Приветствую. Задача: вытащить из текста конструкцию вида [_TEXT_] , причем только в том случае, если перед и после неё нет других фигурных скобок.
Поиск выполняю через preg_match_all , используя шаблон 
Код

/((?!])\[_\w*_](?<!\[))/

В итоге из конструкции 
Цитата

[_TEXT1_][_TEXT2_]
 получаю обе записи, чего по условию быть не должно.
Поясните пожалуйста, что я делаю не так?

Заранее благодарю.
PM MAIL   Вверх
sTa1kEr
Дата 12.10.2009, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 5
Всего: 146



1. Условие (?! ) сопоставляется с последующими символами, а (?<! ) с предшествующими. У вас же все наоборот сделано.
2. Разберитесь с экранированием квадратных скобок.
PM MAIL   Вверх
MixerMsK
Дата 12.10.2009, 09:27 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



1. Спасибо!Ступил - всё заработало smile
2. В книжке по Perl`у "С верблюдом" автор утверждает, что экранировать нужно только первую, вторую - по желанию т.к. отдельно(если нигде не стоит открывающая) она экранирования не требует.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0737 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.