Есть некий текст, например Код (Text): [q=XENom39][q=AlexSid][q=XENom39][q=AlexSid] [b]Kyper[/b]: не, ну совсем уж жесть я удаляю практически сразу...[/q] А вот для "жести" раздельчик непомещает!! =)[/q]Помешает![/q] Смотря что понимать под "жестью" =)[/q] НУ жесть если будет в отдельной директории это будет ништяк!!!>-) [q=Макс]Можно вопрос: так значит кабелем DCA 540 нельзя даже патчить в В_Клей мой сх70?[/q] Нельзя. [url=http://sim65.ucoz.ru/publ/4-1-0-8]Data-кабели для Siemens x65[/url] [q][/q] как вы наверное уже догадались - цитаты, причем они могут быть вложенными. Как грамотно вырезать из этого текста цитаты? т.е. что-бы осталось: Код (Text): НУ жесть если будет в отдельной директории это будет ништяк!!!>-) Нельзя. [url=http://sim65.ucoz.ru/publ/4-1-0-8]Data-кабели для Siemens x65[/url] Или проще говоря: Как из строки выделить подстроку по некоему условию НЕ содержащую некоторое слово?
Сам покопался и нашёл: Код (Text): while (preg_match("#\[q=.*\[\/q\]#isU",$st)>0) $st=preg_replace("#\[q=((?:(?!\[q=).)*)\[\/q\]#isU","",$st);
Пост слегка запоздавший конечно, но я тут копался с этим не так давно, может кому понадобиться ещё (какраз с цитатами, безлимитрое кол-во вложений) Код (Text): $pattern = array('/\[quote\=\"([^\"]+)\"\]/i', '/\[quote\]/i', '/\[\/quote\]/i'); $replacement = array( '<div align="center" style="padding: 10px 30px 10px 20px;"><div style="font-weight: bold; padding-bottom: 5px;" align="left">$1 '._("писал(а)").'</div><div style="border: 1px solid #a6a6a6; background-color: #eaeaea; padding: 7px; text-align: left;">', '<div align="center" style="padding: 10px 30px 10px 20px;"><div style="font-weight: bold; padding-bottom: 5px;" align="left">'._("Цитата").'</div><div style="border: 1px solid #a6a6a6; background-color: #eaeaea; padding: 7px; text-align: left;">$1', '</div></div>'); $string = preg_replace($pattern, $replacement, $string);