Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   регулярные выражения php (https://javascript.ru/forum/server/5105-regulyarnye-vyrazheniya-php.html)

HelpeR 15.09.2009 20:26

регулярные выражения php
 
Здравствуйте, пытаюсь сделать регулярное выражение, которое бы вырезала все тэги кроме <br></br><p></p>
делаю так, но что то не получается
$t = "<div>hello</div><b>new text</b><p>this is p</p><br>new string";
echo preg_replace("/<\/?[^(br)|p|>].*?>/","",$t);


регулярное выражение уже нашел готовое, пытаюсь доработать и еще вопрос, не пойму почему нужен тут предпоследний символ (?) ? Ведь * показывает, что следует 0 или многое количество любых (.) символов

Octane 15.09.2009 20:43

Слеши от литеральной ("/…/") нотации внутри строки не надо писать вроде.
? — минимальный квантификатор

HelpeR 15.09.2009 20:50

нет это не то! это выражение работает нормально, единственный минус это то, что он оставляет тэг <b> т.к. читает букву b от слова br. Поэтому я взял br взял в скобки, что бы слово читалось как группа. А на счет минимального квантификатора я знаю. Нашел выход, но все равно не знаю на счет br.
"/<\/?[^>|p|(br)]*?>|<b>|<\/b>/"

Kolyaj 15.09.2009 21:04

http://ru.php.net/strip_tags
Код:

strip_tags($str, '<br><p>');
А любые символы, в том числе круглые скобки, (за некоторыми исключениями) внутри квадратных скобок являются обычными символами, входящими в символьный класс.

Riim 15.09.2009 21:08

Цитата:

Сообщение от HelpeR
Поэтому я взял br взял в скобки, что бы слово читалось как группа.

Внутри конструкции [] группировать нельзя, эта конструкция для набора !символов!.

HelpeR 15.09.2009 21:09

всем огромнейшее спасибо. Чувствую себя таким.... оказывается все решается одной строкой кода )))))) :lol:


Часовой пояс GMT +3, время: 06:27.