贪婪模式:
<?PHP header('Content-type:text/html;charset=utf-8;'); var_dump(preg_match_all('/<div>(.+)<\/div>/','<div>aaa</div><div>bbb</div><div>ccc</div>',$a)); var_dump($a); ?>输出(非贪婪模式)
array
0 =>@H_404_8@
array
0 =>@H_404_8@ string '<div>aaa</div><div>bbb</div><div>ccc</div>'@H_404_8@ (length=42)
1 =>@H_404_8@
array
0 =>@H_404_8@ string 'aaa</div><div>bbb</div><div>ccc'@H_404_8@ (length=31)
非贪婪模式
<?PHP header('Content-type:text/html;charset=utf-8;'); var_dump(preg_match_all('/<div>(.+?)<\/div>/',$a)); var_dump($a); ?>输出:
array
0 =>@H_404_8@
array
0 =>@H_404_8@ string '<div>aaa</div>'@H_404_8@ (length=14)
1 =>@H_404_8@ string '<div>bbb</div>'@H_404_8@ (length=14)
2 =>@H_404_8@ string '<div>ccc</div>'@H_404_8@ (length=14)
1 =>@H_404_8@
array
0 =>@H_404_8@ string 'aaa'@H_404_8@ (length=3)
1 =>@H_404_8@ string 'bbb'@H_404_8@ (length=3)
2 =>@H_404_8@ string 'ccc'@H_404_8@ (length=3)
preg_replace_callback在类中的用法
<?PHP header('Content-type:text/html;charset=utf-8;'); class ClassName { public function str($str){ $res=preg_replace_callback('/(\d){3}/',array($this,'replace'),$str); return $res; } function replace($maths){ return $maths[0]=$maths[1]; } } $obj=new ClassName(); $res=$obj->str(array('111sdfsdf222asdfsd444sdg','333sdf555dfgdfg55dfgdf999dfgdfg')); var_dump($res); ?>