Regex, добавьте атрибут в тег в html (php)

Я не могу это понять, я ищу некоторое регулярное выражение, которое добавит atttribute к тегу html.

Например, скажем, что у меня есть строка с <a> в ней, а для <a> требуется добавленный к ней атрибут, поэтому <a> добавляется style="xxxx:yyyy;". Как бы вы это сделали?

В идеале он добавит любой атрибут к любому тегу.

Я прошу большую часть регулярного выражения php +, должен ли я создавать класс, чтобы делать что-то подобное?

Ура!

Ответ 1

Было сказано миллион раз. Не используйте регулярное выражение для разбора HTML.

    $dom = new DOMDocument();
    @$dom->loadHTML($html);
    $x = new DOMXPath($dom);

    foreach($x->query("//a") as $node)
    {   
        $node->setAttribute("style","xxxx");
    }
    $newHtml = $dom->saveHtml()

Ответ 2

Здесь используется regex:

  $result = preg_replace('/(<a\b[^><]*)>/i', '$1 style="xxxx:yyyy;">', $str);

но Regex не может анализировать искаженные HTML-документы.