$str = 'baaacad';$pre = '/a*/'; //匹配字符串中的a匹配不到preg_match($pre,$str,$arr);var_dump($arr);
3 回答

梦里花落0921
TA贡献1772条经验 获得超6个赞
你输出 var_dump(preg_match($pre,$str,$arr));
显示匹配到了一个, 可是为什么$arr里面没你想要的值?
实际上, 这个正则匹配到东西了, 就是 在最开始位置的那个0宽的字符, 如下演示
0 1 2 3 4 5 6
b a a a c a d // 为了演示, 把空白也格开了.
^
|====== 实际上正则匹配到这儿了, 所以结果是一个strlen() == 0的字符串.
因为a* 表示0个或多个a, 在最开始就是0个a

富国沪深
TA贡献1790条经验 获得超9个赞
$str = 'baaacad';
preg_match("/(a)+/",$str,$arr);
var_dump($arr);
array (size=2)
0 => string 'aaa' (length=3)
1 => string 'a' (length=1)
- 3 回答
- 0 关注
- 354 浏览
添加回答
举报
0/150
提交
取消