$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块?
echo '<pre>';
var_dump($match);请问高手们:网上写的匹配div都是这样写的,但是我写的时候,发现他不能完整的匹配一个div块! 如这个我这个div id=css他的结束/div在3的后面,但是这样写只能到2那里就结束了,有没有什么方法匹配到他自己的div块?
简单、实用、高效完全不需要自己去摆弄正则
<?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>
<?php
$str='<div id="css">1<div>2</div>3</div><div>4</div>';
$pattern="/[^<div]*<div[^<>]*>(.*)<\/div>[^<\/div>]*/";
echo preg_replace($pattern,"$1",$str);
//1<div>2</div>3</div><div>4