Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.29;
Скачать: CL | DM;

Вниз

Регулярный выражения и php   Найти похожие ветки 

 
Nous Mellon_   (2007-04-03 14:05) [0]

Здравствуйте, друзья. Озабочен такими нубскими вопросами по php:

В своем скрипте паршу некоторый html файл. К примеру, в нем есть два блока с html комментариями "<!--zzz-->" и "<!--ppp-->". Между этими блоками много разного hmtl кода. Как мне построить паттерн для preg_replace чтобы он вырезал весь этот блок от начала до конца вместе с содержимым? При условии, что код страницы в строке. т.е. Там должно получится что-то вроде
$text = preg_replace($pattern, "", $text); Вот с формированием этого $pattern и вся засада, я не силен в регулярах, поэтому измучился уже весь...

Надеюсь на вашу помощь


 
xayam ©   (2007-04-03 14:14) [1]

Для RegExpr примерно так будет

<!--zzz-->(.*?)<!--ppp-->

"." - это любой символ
"*" - это значит любое количество раз и ни разу в том числе
"?" - это включает не жадный режим

Как на Php эти символы обозначаются незнаю


 
umbra ©   (2007-04-03 14:27) [2]

про php не знаю, но в перле паттерн выглядел бы как
^<!--zzz-->(.*\n)*<!--ppp-->$

\n - символ конца строки


 
McSimm_   (2007-04-03 14:30) [3]

$text = preg_replace("/<!--zzz-->(.*?)<!--ppp-->/s", "", $text);

модификатор s необходим, чтобы переводы строк захватывались точкой


 
McSimm_   (2007-04-03 14:33) [4]


> umbra ©   (03.04.07 14:27) [2]

^ и $ зачем ?


 
umbra ©   (2007-04-03 14:35) [5]

да пожалуй, что лишние. :)


 
Nous Mellon_   (2007-04-03 14:36) [6]

Спасибо огромное всем, друзья, и особенно Максиму, код которого сработал на 100%. Спасибо



Страницы: 1 вся ветка

Текущий архив: 2007.04.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
15-1175714119
Real
2007-04-04 23:15
2007.04.29
Мона Лиза - в MSPAINT.EXE за 2,5 часа


2-1175854943
=Guest=
2007-04-06 14:22
2007.04.29
Объявление функции


11-1156784486
georgy
2006-08-28 21:01
2007.04.29
Создание пакета KOL для интеграции в др. языки.


2-1176126525
FOXi
2007-04-09 17:48
2007.04.29
Передача данных в com порте


4-1164690019
Wolfram
2006-11-28 08:00
2007.04.29
Как вызвать стандартное приглашение к перезагрузке?