Forum Webscript.Ru

Программирование => Регулярные выражения => Тема начата: Berkut от 05 Февраля 2005, 20:12:47

Название: нужна помощь
Отправлено: Berkut от 05 Февраля 2005, 20:12:47
нужно из строки вырезать все вхождения
{текст} но не вырезать {MESSAGE}
/([^{message}]{[\\w]})/Ui
как указать то, что неподходит к условиям поиска?
[^abc] - ищется любой символ, отличный от a или b или c. А как указать, что abc - это строка?
Название: нужна помощь
Отправлено: Макс от 06 Февраля 2005, 13:03:46
покажи пример текста, что из него вырезать и желаемый результат
Название: нужна помощь
Отправлено: Berkut от 06 Февраля 2005, 14:03:10
текст:
some text
jhbjihbhb {ERR_MESS} {CONTENT}
{MESSAGE}njnhiinnji

после обработки должно остаться:
some text
jhbjihbhb
{MESSAGE}njnhiinnji

т.е. все конструкции {SOME_TEXT} должны быть удалены, кроме одной конструкции - {MESSAGE}
Название: нужна помощь
Отправлено: Макс от 06 Февраля 2005, 15:09:46

$str = "
some text
jhbjihbhb {ERR_MESS} {CONTENT}
{MESSAGE}njnhiinnji";
echo preg_replace("~\\\\{((?!message).)*?\\\\}~si", "", $str);
Название: нужна помощь
Отправлено: Berkut от 06 Февраля 2005, 16:49:50
Макс большое спасибо!