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 словосочтание.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
LShark
Отправлено: 28 Февраля, 2013 - 20:35:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 240
Дата рег-ции: Нояб. 2012  


Помог: 1 раз(а)




Есть что то вроде:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <font=white [случайный набор символов]>
  2. <font=black [случайный набор символов]>
  3. <font=#06ff33 [случайный набор символов]>
  4. <font=red [случайный набор символов]>
  5. <font=white [случайный набор символов]>
  6. <font=long [случайный набор символов]>
  7. <font=detroit [случайный набор символов]>


Необходимо заменить всех их, исключая те, в которых font=white

Понимаю, что просто, но торможу что то.

Вариант использую что то вроде:
font=.?*\s.?*>

Как исключить слово white из попадания? В уроках найти не могу Недовольство, огорчение


-----
Истина прежде всего в том, что...
 
 Top
zypikov
Отправлено: 01 Марта, 2013 - 11:47:13
Post Id



Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010  


Помог: 3 раз(а)




LShark пишет:
<font=white [случайный набор символов]>

LShark у вас вышеприведенный код записан одной строкой? Или функция регулярного выражения обрабатывает в цикле каждое
CODE (html):
скопировать код в буфер обмена
  1. <font=white [случайный набор символов]>
?

Вообще лучше напишите полностью регулярку..

LShark пишет:
Необходимо заменить всех их, исключая те, в которых font=white

PHP:
скопировать код в буфер обмена
  1.  
  2. $str = '<font=white [случайный набор символов]>';
  3. if (!preg_match('/font=white/i',$str)) { $str = 'то на что меняем'; }
  4.  

(Отредактировано автором: 01 Марта, 2013 - 11:48:33)



-----
У всего есть обратная сторона.
 
 Top
LShark
Отправлено: 01 Марта, 2013 - 16:25:40
Post Id



Частый гость


Покинул форум
Сообщений всего: 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
Но ответы странно-кривые.
(Добавление)
Поскрипев мозгами и почитав нашел ответ в той теме:

CODE (htmlphp):
скопировать код в буфер обмена
  1. font=(?:(?!white).)*?


Ищет все варианты font=.... кроме font=white

(Отредактировано автором: 01 Марта, 2013 - 16:45:48)



-----
Истина прежде всего в том, что...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB