【发布时间】:2020-03-05 20:14:13
【问题描述】:
所以我的 PHP 代码可以输出如下所示的 HTML:
<div class="wrapper">
<h2>This is a header</h2>
<h2>This is one too/h2>
<h4>Here's one</h4>
<div class="ignore">
<h5>I'm one in here too</h5>
</div>
</div>
我正在尝试做的是 preg_match_all 的标题标签。我的正则表达式(<h([1-6]{1})[^>]*)>.*<\/h\2> 会适当地返回所有这些,但我不想使用“忽略”类来获取 div 中的标题。我正在阅读有关负前瞻的信息,但它变得棘手。任何有帮助的人将不胜感激。
期望的输出:
<h2>This is a header</h2>
<h2>This is one too/h2>
<h4>Here's one</h4>
注意我也是这里的一员,因为它被包裹在带有“ignore”类的 div 中。
【问题讨论】:
-
如果它是一个选项,例如使用 DOMDocument 而不是正则表达式
-
Lookbehinds / lookaheads 听起来像是正确的方向。到目前为止,您对它们进行了哪些尝试,您对它们的确切问题是什么? SO 上的人不会为您编写代码
-
我不是在找人为我编码。我正在寻找一个可能的解决方案。编写 RE 是为了像我想要的那样抓取标题。我只是不明白在哪里放置限定符以省略忽略 div 中的标题标签。
-
你能分享想要的输出吗?
-
@EnricoMariaDeAngelis 为所需的输出在上面进行了编辑。
标签: php regex preg-match