Прежде всего, не используйте регулярные выражения.Это может работать немного, но на этом пути лежит безумие.
То, что вы хотите сделать, это разобрать строку в XML, используя PHP-библиотеку DOMЭто преобразует HTML (при условии, что он является действительным HTML и не искажен) в набор объектов, которые вы можете перемещать, изменять, а затем преобразовывать обратно в строку.как этот .
Это чисто неординарный код, я не проверял его, но он должен дать вам общее представление:
$doc = new DOMDocument();
$doc->loadHtml($YOUR_DATA);
$links = $doc->getElementsByTagName( "a" );
foreach( $links as $link )
{
// Modify $link however you need to
}
$CONVERTED_DATA = $doc->saveHtml();