【发布时间】:2017-02-27 12:20:43
【问题描述】:
我有一个 HTML 字符串,其中存在一些继承的 div,我只需要提取顶级 div,例如-
$html= '<div class="test">
<div>
<div>Some text 1</div>
<div>Image content 2</div>
</div>
<div>
<div>Some text 2</div>
<div>Image content 2</div>
</div>
....
</div>';
$regex ='/<div\sclass=[\"\']test[\"\']>.*?<\/div>/is';
preg_match($regex, $html, $matches);
但真正的问题是结果只显示了第一个Some text 1</div>,请帮我找出错误的地方?
我需要获取整个班级 test 'div' 作为结果匹配。
<div>
<div>Some text 1</div>
<div>Image content 2</div>
</div>
<div>
<div>Some text 2</div>
<div>Image content 2</div>
</div>
【问题讨论】:
-
最佳实践是使用库解析 html 并提取您需要的内容。从官方文档中,尝试this
-
@DanIonescu,我正在使用 file_get_content,然后使用我想要获取这些表单的正则表达式。
-
如果你坚持,试试正则表达式:([\s\S]((.|\n)*))必要时