php 一个正则表达式问题

$str="<php>1<p>02</p></php><php><b>234</b></php>";
$pattern = "#(?<=<php>)(.*?)(?=</php>)#i";
preg_match($pattern,$str,$matches);
var_dump($matches);
结果:

array (size=2)
0 => string '1<p>02</p>' (length=10)
1 => string '1<p>02</p>' (length=10)

为什么没全部匹配出来

将表达式修改一下试试,新表达式如下:
$pattern = "#(?<=<php>)(.*)(?=</php>)#i";
===
* 重复任意次,但尽可能多重复
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复

?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网