这种正则表达式怎么写?求高手解答! html或xml的东西有专门的dom api,特别是标签嵌套的html,尽量不要尝试用正则去获取,尤其是php的正则,这里涉及到正则的递归,即使php能有象其它语言提供的正则平衡组,也最好不要用。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <(span|div)\s+class=\"\d\">\s+<h3\s+class=\"title\">(.*?)<\/h3>\s+<div\s+class=\"con\">\s*(.*?)\s*<\/div>\s*<\/(span|div)> $s =<<< TXT<span class="1"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></span><div class="2"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></div><div class="3"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></div><span class="4"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></span>TXT;方案1include 'phpquery.php';$doc = phpQuery::newDocument($s);echo $doc->find('.1')->html();echo pq('.2')->html();得 <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div>方案2include 'html_document.php';$p = new html_document( $s, 0);foreach($p->find('.\d') as $v) { echo "$v->innerHTML\n";}得 <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div> 换行符过滤的问题! 关于前台搜索功能 有知道这是个什么问题? 截取字符串问题 一个switch语句的问题。 如何遍历这样的一个多维数组? CVS 是什么意思呀?! 我做了一个表单,提交表单时,英文字母提交很正常,但是中文字母提交以后转换为看不懂的字母,我该怎么办? 纠结问题ftp下载 请问app是怎么实现推送消息的 paypal手机网站支付? PHP评论回复
<span class="1">
<h3 class="title">testtesttesttesttesttestt</h3>
<div class="con">
<span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p>
</div>
</span>
<div class="2">
<h3 class="title">testtesttesttesttesttestt</h3>
<div class="con">
<span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p>
</div>
</div>
<div class="3">
<h3 class="title">testtesttesttesttesttestt</h3>
<div class="con">
<span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p>
</div>
</div>
<span class="4">
<h3 class="title">testtesttesttesttesttestt</h3>
<div class="con">
<span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p>
</div>
</span>
TXT;方案1
include 'phpquery.php';
$doc = phpQuery::newDocument($s);
echo $doc->find('.1')->html();
echo pq('.2')->html();得 <h3 class="title">testtesttesttesttesttestt</h3>
<div class="con">
<span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p>
</div> <h3 class="title">testtesttesttesttesttestt</h3>
<div class="con">
<span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p>
</div>
方案2include 'html_document.php';
$p = new html_document( $s, 0);
foreach($p->find('.\d') as $v) {
echo "$v->innerHTML\n";
}得
<h3 class="title">testtesttesttesttesttestt</h3>
<div class="con">
<span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p>
</div>
<h3 class="title">testtesttesttesttesttestt</h3>
<div class="con">
<span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p>
</div>
<h3 class="title">testtesttesttesttesttestt</h3>
<div class="con">
<span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p>
</div>
<h3 class="title">testtesttesttesttesttestt</h3>
<div class="con">
<span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p>
</div>