php正则配备div块
$a='<div id="css">1<div>2</div>3</div><div>4</div>';
preg_match_all('/<div id=\"css\">(.*?)<\/div>/',$a,$match);
echo '<pre>';
var_dump($match);
请问高手们:网上写的匹配div都是这样写的,但是我写的时候,发现他不能完整的匹配一个div块! 如这个我这个div id=css他的结束/div在3的后面,但是这样写只能到2那里就结束了,有没有什么方法匹配到他自己的div块?
------解决方案--------------------http://downloads.sourceforge.net/project/simplehtmldom/simplehtmldom/1.5/simplehtmldom_1_5.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsimplehtmldom%2Ffiles%2F&ts=1332749181&use_mirror=nchc
simplehtmldom 类
简单、实用、高效
完全不需要自己去摆弄正则
------解决方案--------------------
嵌套的标签用递归匹配
PHP code
<?php
$str='<div id="css">1<div>2</div>3</div><div>4</div>';
$pattern='#<div[^<>]*>(([^<>]*|(?R))*)</[^<>]*>#';
preg_match_all($pattern,$str,$matches);
echo $matches[0][0];
//<div id="css">1<div>2</div>3</div>
------解决方案--------------------