, не зная языка, вы можете использовать (возможно, самый портативный) заменить модификатор:
s/^(src=")([^"]+")$/$1www\.example\.com\/$2/
Это необходимо сделать следующее: 1 Строка 'src = "' (и захватить ее в переменной $ 1) 2. один или несколько символов без двойных кавычек ("), за которыми следует "(и захватить его в переменной $ 2) 3. Запасные материалы www.example .com/'между двумя группами захвата.
В зависимости от языка вы можете обернуть это в условном выражении, которое проверяет наличие домена и заменяет его, если оно не найдено.
, чтобы проверить домен: /www\.example\.com/i
должен делать.
EDIT: Смотрите комментарии:
Для PHP, я хотел бы сделать это немного по-другому. Я бы, вероятно, использовал simplexml. Я не думаю, что будет переводить хорошо, хотя, так вот регулярное выражение один ...
$html = file_get_contents('/path/to/file.html');
$regex_match = '/(src="|href=")[^(?:www.example.com\/)]([^"]+")/gi';
$regex_substitute = '$1www.example.com/$2';
preg_replace($regex_match, $regex_substitute, $html);
Примечание: На самом деле я не запускать это отладить его, это просто экспромтом. Я был бы обеспокоен тремя вещами. во-первых, я не уверен, как preg_replace будет обрабатывать символ /. Я не думаю, что вы беспокоитесь об этом, если только у VB нет аналогичной проблемы. Во-вторых, если есть вероятность, что разрыв строки будет мешать, я могу изменить регулярное выражение. В-третьих, я добавил бит [^(?:www\.example\.com)]
. Это должно изменить соответствие любому src или href, что не имеет www.example.com/ там, но это зависит от типа используемого регулярного выражения (POSIX/PCRE).
Остальные изменения должны быть точными (я добавил href = ", а также сделал его нечувствительным к регистру (\ i), и есть требование сделать его глобальным (\ g) в противном случае, он будет просто совпадать один раз).
Я надеюсь, что помогает.
Там нет никакого способа, чтобы построить регулярное выражение, которое будет работать. Другие теги могут иметь 'SRC =' атрибутов и строка может также появиться в CDATA другое содержимое страницы. Регулярные выражения не может разобрать HTML или XML или XHTML. Анализ парсеров, регулярных выражений нет. Используйте 'wget' или что-то, что на самом деле знает, как переводить ссылки. – msw