не зная языка, вы можете использовать (возможно, наиболее переносимый) заменяющий модификатор:
s/^(src=")([^"]+")$/$1www\.example\.com\/$2/
Это должно сделать следующее:
1. строка 'src = "' (и захватить ее в переменной $ 1)
2. один или несколько символов без двойных кавычек ("), за которыми следует" (и записать его в переменную $ 2)
3. Замените "www.example.com/" между двумя группами захвата.
В зависимости от языка вы можете заключить его в условие, которое проверяет наличие домена и заменяет его, если он не найден.
для проверки домена: /www\.example\.com/i
должен сделать.
РЕДАКТИРОВАТЬ: Смотрите комментарии:
Для 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);
Примечание: на самом деле я не запускал его для отладки, он просто не в порядке. Я был бы обеспокоен 3 вещами. Во-первых, я не уверен, как preg_replace будет обрабатывать символ /. Я не думаю, что вы обеспокоены этим, если только у VB нет аналогичной проблемы. Во-вторых, если есть вероятность, что разрывы строк будут мешать, я мог бы изменить регулярное выражение. В-третьих, я добавил бит [^(?:www\.example\.com)]
. Это должно изменить соответствие на любой src или href, который не имеет там www.example.com/, но это зависит от типа используемого регулярного выражения (POSIX / PCRE).
Остальные изменения должны быть в порядке (я добавил href = ", а также сделал его нечувствительным к регистру (\ i), и есть требование сделать его глобальным (\ g), в противном случае он будет совпадать только один раз).
Надеюсь, это поможет.