[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удалить все, что в скобках, за исключением...
Placido
Есть текст, в нем есть фразы в скобках. Задача - удалить их все, включая и скобки, за исключением определенных фраз.
Например, исключения - "важное замечание" и "суперважное примечание".
Тогда из текста
Цитата
бла-бла-бла 123 (не очень важное замечание), бла-бла;
бла-бла-бла-бла 463 бла-бла (важное замечание), бла-бла-бла (не важное замечание);
бла-бла-бла-бла 223667 бла-бла (суперважное примечание), бла-бла-бла (лишний текст);
Нужно получить
Цитата
бла-бла-бла 123, бла-бла;
бла-бла-бла-бла 463 бла-бла (важное замечание), бла-бла-бла;
бла-бла-бла-бла 223667 бла-бла (суперважное примечание), бла-бла-бла;

У меня временный ступор. Буду благодарен пинку в нужном направлении.



Спустя 4 минуты, 40 секунд (26.06.2012 - 20:32) fdr написал(а):
Цитата
Буду благодарен пинку в нужном направлении.

пинок будет в направление регулярных выражений! biggrin.gif

Спустя 32 секунды (26.06.2012 - 20:32) m4a1fox написал(а):
Placido
Пинок - смотрим в сторону регулярных выражений.

Спустя 4 минуты, 32 секунды (26.06.2012 - 20:37) Placido написал(а):
Цитата (m4a1fox @ 26.06.2012 - 20:32)
Placido
Пинок - смотрим в сторону регулярных выражений.

Цитата (fdr @ 26.06.2012 - 20:32)
пинок будет в направление регулярных выражений!

Спасибо, кэп! Не смущает, что тема создана в разделе "регулярные выражения"?

Спустя 13 минут, 3 секунды (26.06.2012 - 20:50) Placido написал(а):
Все, ступор прошел, проблема решена.
$string = ...;//здесь текст
$exceptions = array('важное замечание', 'суперважное примечание');//массив с фразами-исключениями
echo preg_replace('# \(((?!' . implode('|', $exceptions) . ').)*?\)#', '', $string);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.