Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Заменить совпадения, исключая в поиске 1 словосочтание.
Покинул форум
Сообщений всего: 240
Дата рег-ции: Нояб. 2012
Помог: 1 раз(а)
Я имел ввиду, что мне нужно заменит ВСЕ строи, которые содержат font= КРОМЕ тех, где font=white
Меняется все не в цикле, а стандартным preg_replace.
Просто таким образом из говнокода индусов ворд-микрософта генерируется нормальный HTML.
font= заменяю на style=", но проблема в том, что бэкграунд и в некоторых местах шрифт выделены БЕЛЫМ цветом (в ворде так многие ТП прячут текст (белый на белом) или поправляют выделенное бэкграундом (вместо прозрачного ставят белый фон). Так вот ТАКИЕ фонты и бэки сохранять не надо.
Потому и говорю - мне нужно вариант регулярки, в которым будут отлавливаться ВСЕ сочетания font=... и.т.д., кроме тех, в которых font=white
По этой причине и не могу отдельно высеиватьпрег-матчем, так как white может встречаться и в текста, а вот font='white' я затем удаляю вместе с ненужными спанами.
Просто выражение ^(white)*? не срабатывает, вроде. Множно, конечно, заболванить ^[w]*? но не то... (Добавление)
Кстати, такой вопрос уже был: http://www.php.su/forum/topic.ph...4&topic=2001
Но ответы странно-кривые. (Добавление)
Поскрипев мозгами и почитав нашел ответ в той теме:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.