我正在尝试使用正则表达式来查找h4标记之间的所有内容。所以我需要一个在第一个元素中包含两个段落的数组,一个在第二个元素中,三个在第三个元素中,依此类推。 h4标签之间可以有各种html。
下面的一个不起作用。
$a = preg_match_all("#<h4>(.*?)</p>.*?<h4>#s", $description, $m);
<h4>Lorem ipsum </h4>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<h4>Lorem ipsum </h4>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<h4>Lorem ipsum </h4>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<h4>Lorem ipsum </h4>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</p>
答案 0 :(得分:1)
$subject = "Your HTML"; //replace with actual HTML
$pattern = "/<\\/h4>(((?!<h4>).)*)/mis";
preg_match_all($pattern, $subject, $matches);
$matches
是一个数组数组,其中包含全局h4
标记之间的所有文本。