高难度正则,高手们come.. 本帖最后由 php1999 于 2011-06-27 23:08:01 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <a>2543634646<a>63dsg265></a>323463464626236</a><a>254634654326sdgsdg53463643643632626236</a><a>54634654<dd>326534sdg63643643</dd>632626236</a><a>254363464<a>63dsg265></a>323463464626236<a><div>dg</div></a></a><a>254634654326sdgsdg534636436436326<div id="dr">33</div>26236</a>把这些匹配出来就行。 这段代码根本就不是正规的html代码!你想匹配出什么样的结果来? 这个……判断第一个换行符就行了吧?/(?:[^\n\r]*[\n\r]+)[\d\D]*/ $nr=<<<HTML<a>254363464<a>63dsg265></a>323463464626236<a><div>33</div></a></a><a>2543634646<a>63dsg265></a>323463464626236</a><a>254634654326sdgsdg53463643643632626236</a><a>54634654<dd>326534sdg63643643</dd>632626236</a><a>254363464<a>63dsg265></a>323463464626236<a><div>dg</div></a></a><a>254634654326sdgsdg534636436436326<div id="dr">33</div>26236</a>HTML;$r = '/\d+/';preg_match_all($r, $nr, $a);echo '<pre>';print_r($a[0]);/*输出:Array( [0] => 254363464 [1] => 63 [2] => 265 [3] => 323463464626236 [4] => 33 [5] => 2543634646 [6] => 63 [7] => 265 [8] => 323463464626236 [9] => 254634654326 [10] => 53463643643632626236 [11] => 54634654 [12] => 326534 [13] => 63643643 [14] => 632626236 [15] => 254363464 [16] => 63 [17] => 265 [18] => 323463464626236 [19] => 254634654326 [20] => 534636436436326 [21] => 33 [22] => 26236)*/ 神级啊..... 我都还没看懂LZ 说的什么意思. K哥 就已经把正则都写好了。 牛牛 这有什么难的?不就是去掉第一行吗?$nr=<<<HTML<a>254363464<a>63dsg265></a>323463464626236<a><div>33</div></a></a><a>2543634646<a>63dsg265></a>323463464626236</a><a>254634654326sdgsdg53463643643632626236</a><a>54634654<dd>326534sdg63643643</dd>632626236</a><a>254363464<a>63dsg265></a>323463464626236<a><div>dg</div></a></a><a>254634654326sdgsdg534636436436326<div id="dr">33</div>26236</a>HTML;$p = '#^.+?</div></a></a>(.+)#s';$p = "/.+?\n(.+)/s"; //两个都可以,这个更通用preg_match_all($p, $nr, $r);print_r($r[1]);Array( [0] => <a>2543634646<a>63dsg265></a>323463464626236</a><a>254634654326sdgsdg53463643643632626236</a><a>54634654<dd>326534sdg63643643</dd>632626236</a><a>254363464<a>63dsg265></a>323463464626236<a><div>dg</div></a></a><a>254634654326sdgsdg534636436436326<div id="dr">33</div>26236</a>) 我想要的结果:Array ( [0] =><a>2543634646<a>63dsg265></a>323463464626236</a> [1] =><a>254634654326sdgsdg53463643643632626236</a> [2] =><a>54634654<dd>326534sdg63643643</dd>632626236</a> [3] =><a>254363464<a>63dsg265></a>323463464626236<a><div>dg</div></a></a> [4] =><a>254634654326sdgsdg534636436436326<div id="dr">33</div>26236</a>) $a=preg_split("/[\n\r]+/",$str);unset($a[0]);$b=array_values($a);print_r($b); php注册用户已存在就不能注册怎么实现? 怎么我一刷新就往数据库里添加一条记录啊?大家帮我看看怎么回事? 如何上传大文件数据? count()? PHP向VB的DLL传递参数的问题:为什么不能传递中文汉字? 在线急求!!回答者给100 session生存期的问题 php安装的问题,很奇怪 关于获取list控件值的问题!在线等候!谢谢! setFiled 方法第二个参数是变量要怎么写SQL? 大家帮我看哈这个输出是什么?谢谢 翻页效果 请大侠帮我看下哪里错了
<a>254634654326sdgsdg53463643643632626236</a>
<a>54634654<dd>326534sdg63643643</dd>632626236</a>
<a>254363464<a>63dsg265></a>323463464626236<a><div>dg</div></a></a>
<a>254634654326sdgsdg534636436436326<div id="dr">33</div>26236</a>
把这些匹配出来就行。
你想匹配出什么样的结果来?
<a>254363464<a>63dsg265></a>323463464626236<a><div>33</div></a></a>
<a>2543634646<a>63dsg265></a>323463464626236</a>
<a>254634654326sdgsdg53463643643632626236</a>
<a>54634654<dd>326534sdg63643643</dd>632626236</a>
<a>254363464<a>63dsg265></a>323463464626236<a><div>dg</div></a></a>
<a>254634654326sdgsdg534636436436326<div id="dr">33</div>26236</a>
HTML;
$r = '/\d+/';
preg_match_all($r, $nr, $a);
echo '<pre>';print_r($a[0]);/*
输出:Array
(
[0] => 254363464
[1] => 63
[2] => 265
[3] => 323463464626236
[4] => 33
[5] => 2543634646
[6] => 63
[7] => 265
[8] => 323463464626236
[9] => 254634654326
[10] => 53463643643632626236
[11] => 54634654
[12] => 326534
[13] => 63643643
[14] => 632626236
[15] => 254363464
[16] => 63
[17] => 265
[18] => 323463464626236
[19] => 254634654326
[20] => 534636436436326
[21] => 33
[22] => 26236
)
*/
<a>254363464<a>63dsg265></a>323463464626236<a><div>33</div></a></a>
<a>2543634646<a>63dsg265></a>323463464626236</a>
<a>254634654326sdgsdg53463643643632626236</a>
<a>54634654<dd>326534sdg63643643</dd>632626236</a>
<a>254363464<a>63dsg265></a>323463464626236<a><div>dg</div></a></a>
<a>254634654326sdgsdg534636436436326<div id="dr">33</div>26236</a>
HTML;$p = '#^.+?</div></a></a>(.+)#s';
$p = "/.+?\n(.+)/s"; //两个都可以,这个更通用preg_match_all($p, $nr, $r);
print_r($r[1]);
Array
(
[0] => <a>2543634646<a>63dsg265></a>323463464626236</a>
<a>254634654326sdgsdg53463643643632626236</a>
<a>54634654<dd>326534sdg63643643</dd>632626236</a>
<a>254363464<a>63dsg265></a>323463464626236<a><div>dg</div></a></a>
<a>254634654326sdgsdg534636436436326<div id="dr">33</div>26236</a>
)
Array (
[0] =><a>2543634646<a>63dsg265></a>323463464626236</a>
[1] =><a>254634654326sdgsdg53463643643632626236</a>
[2] =><a>54634654<dd>326534sdg63643643</dd>632626236</a>
[3] =><a>254363464<a>63dsg265></a>323463464626236<a><div>dg</div></a></a>
[4] =><a>254634654326sdgsdg534636436436326<div id="dr">33</div>26236</a>
)
unset($a[0]);
$b=array_values($a);
print_r($b);