我无法弄明白,我正在寻找一些可以为html标签添加一个属性的正则表达式。
例如,假设我的字符串中包含<a>
,并且<a>
需要添加一个属性,因此<a>
添加style="xxxx:yyyy;"
。你会怎么做呢?
理想情况下,它会向任何标记添加任何属性。
我问过很多php + regex,我应该建立一个类来做这类事吗?
干杯!
答案 0 :(得分:19)
据说有一百万次。不要使用正则表达式进行HTML解析。
$dom = new DOMDocument();
@$dom->loadHTML($html);
$x = new DOMXPath($dom);
foreach($x->query("//a") as $node)
{
$node->setAttribute("style","xxxx");
}
$newHtml = $dom->saveHtml()
答案 1 :(得分:11)
这是使用正则表达式:
$result = preg_replace('/(<a\b[^><]*)>/i', '$1 style="xxxx:yyyy;">', $str);
但Regex无法解析格式错误的HTML文档。