一个HTML文档中,有很多个 <h1></h1>标签,并且某个H1之后有一个<div class="content">标签
我现在想要实现的是,匹配离 <div class="content"> 最近的这个标签比如
<h1>a</h1>
<h1>b</h1>
<h1>c</h1>
<h1>d</h1>
<div class="content">asdfasdfasdf</div>我现在想匹配 d ,但是试了几个正则都不行
我现在是这么写的
preg_match("/<h1[^>]*>(.*?)<\/h1>[^((?!<h).)*]content/is",$data,$arr);
但是什么都匹配不出来,是哪里出了问题呢,应该怎么写
我现在想要实现的是,匹配离 <div class="content"> 最近的这个标签比如
<h1>a</h1>
<h1>b</h1>
<h1>c</h1>
<h1>d</h1>
<div class="content">asdfasdfasdf</div>我现在想匹配 d ,但是试了几个正则都不行
我现在是这么写的
preg_match("/<h1[^>]*>(.*?)<\/h1>[^((?!<h).)*]content/is",$data,$arr);
但是什么都匹配不出来,是哪里出了问题呢,应该怎么写
<h1>a</h1>
<h1>b</h1>
<h1>c</h1>
<h1>d</h1>
<div class="content">asdfasdfasdf</div>
html;preg_match("/<h1[^>]*>([^<>]*)<\/h1>(?=\s*<div[^>]*class=\"content\")/is",$html,$match);echo $match[1];
比如
<h1>c</h1>
<h1>d</h1>
asdfdd
asdf
asdf
<div class="content">asdfasdfasdf</div>
<h1>a</h1>
<h1>b</h1>
<h1>c</h1>
<h1>d</h1>
<a>asdf</a>
ssdf
sdfsdf
sdfsdf
<div class="content">asdfasdfasdf</div>
html;preg_match("/<h1[^>]*>([^<>]*)<\/h1>(?:(?!<h1[^>]*>[^<>]*<\/h1>).)*(?=\s*<div[^>]*class=\"content\")/is",$html,$match);echo $match[1];