$str = '<div class="xx">
<div class="office_pageopt">
<span class="red">←</span>
<a href="1209977,23194165.aspx" id="HeadPrevLink">上一章</a>
<a href="./1209977.aspx">回书目</a>
<a href="1209977,23204630.aspx" id="HeadNextLink">下一章</a>
<span class="red">→</span>
</div>
</div>';
preg_match("/<div[\s]+(class=\"office_pageopt\")>/" ,$str , $s); //我写到这想了2个小时了. 还是没搞定.print_r($s);我要匹配 <div class="office_pageopt">中间的内容</div>.
<div class="office_pageopt">
<span class="red">←</span>
<a href="1209977,23194165.aspx" id="HeadPrevLink">上一章</a>
<a href="./1209977.aspx">回书目</a>
<a href="1209977,23204630.aspx" id="HeadNextLink">下一章</a>
<span class="red">→</span>
</div>
</div>';
preg_match("/<div[\s]+(class=\"office_pageopt\")>/" ,$str , $s); //我写到这想了2个小时了. 还是没搞定.print_r($s);我要匹配 <div class="office_pageopt">中间的内容</div>.
$s = <<<eof
<div class="xx">
<div class="office_pageopt">
<span class="red">←</span>
<a href="1209977,23194165.aspx" id="HeadPrevLink">上一章</a>
<a href="./1209977.aspx">回书目</a>
<a href="1209977,23204630.aspx" id="HeadNextLink">下一章</a>
<span class="red">→</span>
</div>
</div>
eof;
if(preg_match('/<div\s*class="office_pageopt">(.*?)<\/div>/is',$s,$arr)){
print_r($arr);
}
+1 使用贪婪匹配,有一点,注意就是这个正则不适用<div class="office_pageopt">
<div class="red">←</div>
<a href="1209977,23194165.aspx" id="HeadPrevLink">上一章</a>
<a href="./1209977.aspx">回书目</a>
<a href="1209977,23204630.aspx" id="HeadNextLink">下一章</a>
<span class="red">→</span>
</div>
这种最好用DOM对象做
print_r($arr);
}
正则加上一个取消贪婪性的U,