正则表达式查找特定标签包含一些标签

时间:2011-12-25 20:24:18

标签: php regex

[抱歉我的主题和主题标题,我现在没有足够的时间学习PHP DOM] 如何捕获a标签,包含一些文字和标签? 例如:

<div>
<a href="http://www.google.com/">Google COM</a>
<a target="_blank" href="http://www.google.co.uk/">Google <span class="country">UK</span></a>
</div>
<span>
<a id="italy" href="http://www.google.it/"><span class="country">Italy</span><strong> I</strong></a>
<a class="link" href="#top">Top</a>
</span>

我想捕获a,其中包含ItalyGoogle。 非常感谢你。

1 个答案:

答案 0 :(得分:5)

PHPDOM­Docs实际上是最简单的工具,选择器/表达式语法并不难:

$doc = new DOMDocument();
$doc->loadHTML($html); # your string
$xpath = new DOMXpath($doc);   

$xpath->query("//a[text()[contains(., 'Italy') or contains(., 'Google')]]");

如果您只想查看某个父元素,可以轻松添加:

$xpath->query("//div/a[text()[contains(., 'Italy') or contains(., 'Google')]]");