preg_replace只在h1标签之间添加类来锚定标签

时间:2011-05-31 10:13:32

标签: html regex

我需要为h1标签中的每个锚标签添加一个自定义类,保持所有其他锚标签不变。

目前我有:

$content = preg_replace("/(<h1.*?<a.*?)/i","$1 class=\"mystyle\"",$content);

上面的问题是它只将我的类添加到任何h1标题中找到的第一个锚点,而我真的很难弄清楚如何纠正这个问题。

澄清,

<h1><a href="page.html">Lorem</a> ipsum dolor sit <a href="page.html">amet</a>, consectetur adipiscing elit.</h1>
<h2><a href="page.html">Lorem</a> ipsum dolor sit amet, consectetur adipiscing elit.</h2>
<p><a href="page.html">Lorem</a> ipsum dolor sit amet, consectetur adipiscing elit.</p>
<h1><a href="page.html">Lorem</a> ipsum dolor sit <a href="page.html">amet</a>, consectetur adipiscing elit.</h1>

变为

<h1><a class="mystyle" href="page.html">Lorem</a> ipsum dolor sit <a href="page.html">amet</a>, consectetur adipiscing elit.</h1>
<h2><a href="page.html">Lorem</a> ipsum dolor sit amet, consectetur adipiscing elit.</h2>
<p><a href="page.html">Lorem</a> ipsum dolor sit amet, consectetur adipiscing elit.</p>
<h1><a class="mystyle" href="page.html">Lorem</a> ipsum dolor sit <a href="page.html">amet</a>, consectetur adipiscing elit.</h1>

一个正则表达式的初学者,如果这是一个非常愚蠢的问题,请道歉 我已经搜索了几个小时试图自己做这个,所以我希望有人可以帮忙! 干杯

1 个答案:

答案 0 :(得分:1)

在$ xpath-&gt;查询的帮助下完成('// h1 // a');