что-то вроде этого может работать
$html = preg_replace_callback(
'~((href|src)\s*=\s*[\"\'])([^\"\']+)~i',
'replace',
$html);
function replace($x) {
$url = $x[3];
$url = your_url_conversion_function($url);
return $x[1] . $url;
}
это не удастся, если ваш HTML содержит внешние теги "href" или "src", как в <h1> how to use "src=" </h1>
.Вот почему люди обычно предлагают специализированные парсеры, а не регулярные выражения для html.