Отрицание конкретного слова в регулярных выражениях

Статус
В этой теме нельзя размещать новые ответы.

thewind1984

Новичок
Отрицание конкретного слова в регулярных выражениях

Всем доброго времени суток!

Возникла проблема, без решения которой работа стопорится.
Обрабатываю все ссылки внутри одного документа, которые могут быть полными и вести на этот же сервер (href="http://THIS_SERVER.COM/folder1/file1.php"), неполными и вести на этот же сервер (href="/folder1/file1.php"), а также полными и вести на другой сервер (href="OTHER_SERVER.COM/some_folder/someFile.php"). Целью является приведение всех внутренних ссылок (полных и неполных) к полным. Для этого по идее надо проверять, что идет после конструкции href=" - есть 2 варинта (которые будут рассматриваться): http:// и адрес нашего сервера либо не http://. Написал следующее выражение:
PHP:
 // removing all full links except external links
 $code = preg_replace("/(".implode("|",$separs).")([ ]?)=([ ]?)([\"']?)(https?:\/\/".$host."|([^http]{4}))/", "\\1=\\4!incl_turl!\\6", $code);
Но это работает некорректно, потому что если после href=" в составе первых 4-х символов попадется что-нибудь из (h,t,p), то конструкция не будет учтена. Там может быть, например: href="show.php" - буква h есть, значит проехали. А меня интересует только http. Отсюда вопрос: как задать отрицание НЕ класса символов, а именно целого конкретного слова? Были идеи разбивать нужное слово на символы, но не получилось. Подскажите пожалуйста!

P.S. Просьба не пинать сильно, если не смог найти - перерыл половину гугла и сайтов по PHP - везде только отрицание класса символов.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Вопросы парсинга страниц не обсуждаются в этом форуме по морально-етическим соображениям.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху