Forum Webscript.Ru

Программирование => Регулярные выражения => Тема начата: dub от 27 Апреля 2004, 20:06:33

Название: Соответствие до первого закрывающего тэга
Отправлено: dub от 27 Апреля 2004, 20:06:33
Поиск открывающего тэга, соответствующего шаблону до _первого_ соответствующего закрывающего тэга.

# Строка
$content = \'
BLA-BLA
XYZ
BLA-BLA
\';

В этой строке нужно найти соответствие участку от первого символа открывающего тэга
до последнего символа _первого_ следующего закрывающего тэга
. То есть результат должен быть следующим:
XYZ


Использование регулярного выражения
$re = \'/
]*>.*<\\/div>/i\';
дает результат
 
XYZ
BLA-BLA


То есть проблема заключается в том, как сформулировать на РВ фразу "что угодно, _кроме_ закрывающего тэга ".

Где-то так. Заренее спасибо.

[OFF]Сделать нужно на PHP, отсюда пхпшное задание переменных.[/OFF]
Название: Соответствие до первого закрывающего тэга
Отправлено: гоша от 27 Апреля 2004, 20:32:03
(.*?)
Название: Соответствие до первого закрывающего тэга
Отправлено: dub от 28 Апреля 2004, 13:14:20
гоша
Спасибо.

Может, не совсем в тему. Можно ли вообще как-то с помощью РВ решать проблему вложенности? То есть чтобы из
BLA-BLA
XYZ
BLA-BLA

получать
XYZ

, а из
BLA-BLA
XYZ
BLA-BLA

получать полностью
BLA-BLA
XYZ
BLA-BLA


Не совсем понимаю, как подойти к этому вопросу и можно ли вообще это сделать с помощью РВ или нужно использовать программный парсинг с подсчетом открывающих/закрывающих тэгов. Поэтому формулировка, уж не обессудьте, кривоватая.
Название: Соответствие до первого закрывающего тэга
Отправлено: Макс от 28 Апреля 2004, 14:07:43
Цитировать
dub:
Можно ли вообще как-то с помощью РВ решать проблему вложенности?

зависит от диалекта.
Например в перле есть возможности для работы с вложеными констркциями.
Читай "Регулярные выражения" Фридл, стр. 355 - "Применение динамических рег. выр-ний для поиска вложенных конструкций"
Название: Соответствие до первого закрывающего тэга
Отправлено: Yukko от 28 Апреля 2004, 14:28:07
Будет полезно почитать это:
http://phpclub.ru/talk/search.php?s=&action=showresults&searchid=242610&sortby=after&sortorder=descending