父类的PHP preg_match_all(具有类名)

时间:2019-02-22 19:55:45

标签: php regex preg-match-all

是否可以使用<div class="red lorem-ipsum> <a href="#">Some link</a> </div> <div class="red> <a href="#">Some link</a> </div> <div class="something red lorem-ipsum> <a href="#">Some link</a> </div> 来匹配具有特定类名的父级元素?

例如,我有以下HTML标记:

<a>

我可以匹配班级名称为red的父母中的每个~(?:<div class="red">|\G)\s*<a [^>]+>~i 吗?

我尝试了此方法,但是它不起作用:

{{1}}

1 个答案:

答案 0 :(得分:2)

结合使用DOMDocumentDOMXPath。 HTML在$html变量中:

$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$matches = $xpath->query("//div[contains(concat(' ', @class, ' '), ' red ')]/a");
foreach($matches as $a) {
    echo $a->textContent;
}