подсжите как из этого <td width="457" background="Images/Frame_RB_Top.gif" alt="test"> сделать <td width="457" background="мой путь" alt="test"> кавычки могут быть и одинарные, и самое главное - мне надо изменить только содержимое background="" - т.к. я не знаю зараннее у какого тэга он может быть
Что генерит тэг? php? Если да, то причем тут регекспы, если можно: Код (Text): <td width="457" background="<?php echo $my_value ?>" alt="test"> ну или если шорты на php активированы: Код (Text): <td width="457" background="<?=$my_value?>" alt="test">
нет, готовый обрабатываю - вот ответ - там где двойка - это и есть содержимое между кавычками Код (Text): <?php $pattern = "/background=(\'|\")(.*?)(\'|\")/"; $replacement = "background=\"\${2}\""; $subject = "<td width=\"457\" background=\"Images/Frame_RB_Top.gif\" alt=\"test\">"; $limit = -1; $count = 0; $result = preg_replace ($pattern, $replacement, $subject, $limit, $count); ?>
Ммм.. Надо бы сохранить, как пример анальной стоматологии. И откуда тут "готовое", если вы скриптом создаете конечный вывод? Почему бы не сделать так: Код (Text): <?php $subject = "<td width=\"457\" background=\"$обычная_переменная_с_содержимым\" alt=\"test\">"; ?> ? Не нужно придумывать себе проблемы, чтобы потом придумывать для них решения.
тот код что я вставил - это результат работы онлайн тестера regexp и да, тут не в стоматологии дело - так как надо было в произвольном хтмл изменить все бэкграунды на свои - например переделать абсолютные ссылки на относительные используя callback
Опишите, пожалуйста, суть проекта и самой механики выкачивания с последующей заменой. Что-то как-то... Добавлено спустя 8 минут 15 секунд: в общем очень смахивает или на граббер или на неправильную архитектуру. Со вторым помогу, с первым - увольте.
вот регулярка на выборку атрибута с разными кавычками или без них, осталось переделать под replace ) Код (Text): #cat=([\'\"]?)(?<res>(?(?=[\'\"])[^\\1]*|[^\s]*))\\1#