谁帮改个正则?
这是要匹配的内容:
<dl>
<dt>2013</dt>
<dd>row1</dd>
<dd>row2</dd>
<dd>row3</dd>
</dl>
<dl>
<dt>2014</dt>
<dd>row1</dd>
<dd>row2</dd>
</dl>
<dl>\s+<dt>(.*?)</dt>(\s+<dd>(.*?)</dd>\s+)*?</dl>
preg_match_all('#<(d[dt])>\s*([^<]+)</\\1>#is', $s, $r);Array
print_r($r);
[4] => dt
[5] => dd
[6] => dd
)
[2] => Array
(
[0] => 2013
[1] => row1
[2] => row2
[3] => row3
[4] => 2014
[5] => row1
[6] => row2
)
)
[解决办法]
这个你要一个正则式没办法实现的,要么就像xuzuning说的那样去做了,只是那样去作无法分清楚哪些是dt的,那些是dd的
[解决办法]
因为相同分组会自动覆盖,要么想版主全匹配要么就是分开2次匹配。