Вопрос по рег. выражению

AlexFree

Новичок
Вопрос по рег. выражению

На странице есть такие блоки:

<p style="FONT: 12pt sans-serif" align=justify>Текст1, флдоывдлф. фффф.</p>

<p align=JUSTIFY STYLE="font: 12pt sans-serif;">Текст2! фылофдылвоф.</p>

Какое рег. выражение нужно написать, чтобы вычленить текст из 1-го и 2-го?

Я вот такое накатал, но почему-то не работает:

/<p\s*.*>([\-\?\s_.,:;!а-я0-9]*)<\/p>/i

:(
 

Bor-ka

Новичок
http://php.rinet.ru/manual/ru/function.preg-replace.php

а именно пример:
$search = array ("'<script[^>]*?>.*?</script>'si", // Вырезает javaScript
"'<[\/\!]*?[^<>]*?>'si", // Вырезает HTML-теги
"'([\r\n])[\s]+'", // Вырезает пробельные символы
"'&(quot|#34);'i", // Заменяет HTML-сущности
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(\d+);'e"); // интерпретировать как php-код

$replace = array ("",
"",
"\\1",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\\1)");

$text = preg_replace($search, $replace, $document);
 

Bor-ka

Новичок
AlexFree
где не работает? запускать пробывали?

Код:
<?
$document='<p style="FONT: 12pt sans-serif" align=justify>Текст1, флдоывдлф. фффф.

</p>
<p align=JUSTIFY STYLE="font: 12pt sans-serif;">Текст2!

фылофдылвоф.

</p>
';

$search = array ("'<script[^>]*?>.*?</script>'si", // Вырезает javaScript
"'<[\/\!]*?[^<>]*?>'si", // Вырезает HTML-теги
"'([\r\n])[\s]+'", // Вырезает пробельные символы
"'&(quot|#34);'i", // Заменяет HTML-сущности
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(\d+);'e"); // интерпретировать как php-код

$replace = array ("",
"",
"\\1",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\\1)");

echo $text = preg_replace($search, $replace, $document); 
?>
Результат:

Текст1, флдоывдлф. фффф.
Текст2!
фылофдылвоф.
 

AlexFree

Новичок
Путем пошагового упрощения задачи, я понял в чем проблема!

Между тегами текст может содержать произвольное кол-во переносов строки (т.е. текст в несколько строк)...

Как мне это обработать? как подправить regexp?

-~{}~ 15.10.05 23:31:

А если всё в одну строчку, то работает!!!
 

AlexFree

Новичок
Да вот, сижу читаю и пока мало, что понимаю.. сроки горят просто...

-~{}~ 16.10.05 00:38:

Все, вроде разобрался.. Глаза слипаются, пойду спать. Всем спасибо за внимание и терпение! Я уже наверное всех задолбал.. Буду исправляться.
 
Сверху