Php preg#u match:获取不'的div-s;不包含div(s)

Php preg#u match:获取不'的div-s;不包含div(s),php,regex,Php,Regex,我不明白如何只获取那些不包含其他div的“div”-s(带内容) 例如: <div id='first'> ... <div id='second'> ... </div> </div> <div id='third'> ... </div> ... ... ... 我只需要'second'和'third'divs'内容,开始和结束标记,因为它们不包括其他div

我不明白如何只获取那些不包含其他div的“div”-s(带内容)

例如:

<div id='first'>
    ...
    <div id='second'> 
        ...
    </div> 
</div> 
<div id='third'> 
    ...
</div>

...
...
...
我只需要'second'和'third'divs'内容,开始和结束标记,因为它们不包括其他div


我尝试了这种模式:
~(虽然我不是一个使用rexex提取HTML的纳粹分子,但使用xpath和DOM这个问题要容易得多

$dom = new DomDocument();
$dom->loadHTML($html);

$xpath = new DOMXPath($dom);
$divs = $xpath->query("//div[not(div)]");

我没有测试该代码。但关键部分是not运算符,该运算符查找所有没有div childnode的div。

另一个使用regexp解析html的运算符谢谢您的回答!是的,使用xpath一定会更容易,但如果可能的话,我真的很想知道如何使用regexp。当然,我不确定这是否可能。可能,但这会非常复杂复杂。xpath有什么问题,它们在PHP中很容易使用,只需四处搜索您需要的所有信息。没什么问题,我只是想知道是否可以使用regexp。再次感谢您。我正在使用xpath!