关于正则的一个简单匹配,知道其原理者,全分相送 $str='cs0d07n';你说 *和+有什么区别? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 输出:0=>0=>007其实是正确的,前者*匹配的是0到N的十进制数字,因此空也是它能匹配的值,所以才会输出 0=>'',否则没有匹配数组应该是空的;因此 \d* 这个正则是没啥意义的。 $str="cs007dn"; preg_match_all('/\d*/',$str,$array);//遍历整个$str然后退出, print_r($array); preg_match('/\d*/',$str,$array);//当遇到一个满足条件的就退出,0也满足条件,退出 print_r($array); preg_match('/\d+/',$str,$new_array);//当遇到满足条件的就退出,1个或更多个 print_r($new_array); 4楼的大哥说的相当正确,我终于明白了,这不是正则在作怪,而是preg_match函数的运行机制 php新手问题 windows无法访问Linux服务器 循环问题,类型循环? 文件上传问题 寻梦的稻草人,昨晚读了一下你的代码,偶改为php版的,解释php代码时有点BUG,请指点一下. 大家来讨论一下吧,PHP能否用来开发ERP? macromedia dreamweaver mx 2004 谁用过啊?请教! 采用PHP+MySQL+js+XMLHTTP实现树形目录遇到问题 帮助小妹寻找斑竹goodname 谁有webmail的代码 读取数据库里字段值有时错误有时正确。。 php小问题
0=>
0=>007其实是正确的,
前者*匹配的是0到N的十进制数字,因此空也是它能匹配的值,所以才会输出 0=>'',否则没有匹配数组应该是空的;
因此 \d* 这个正则是没啥意义的。
preg_match_all('/\d*/',$str,$array);//遍历整个$str然后退出,
print_r($array);
preg_match('/\d*/',$str,$array);//当遇到一个满足条件的就退出,0也满足条件,退出
print_r($array);
preg_match('/\d+/',$str,$new_array);//当遇到满足条件的就退出,1个或更多个
print_r($new_array);