$s = "abcdd asa";
preg_match("/.+?/", $s, $aMatch1);
print_r($aMatch1);为什么得到的是 Array ( [0] => a ) ,/.+?/ 意思不是配置非空字符么,为什么就只有a 呢, 后面的为什么就匹配不出来呢?另外如果在 两侧加了括号,/(.+?)/ $s = "abcdd asa";
preg_match("/(.+?)/", $s, $aMatch1);
print_r($aMatch1);输出结果会变成 Array ( [0] => a [1] => a )  为什么啊?谢谢高手指点!

解决方案 »

  1.   

    似乎明白了 好像是 preg_match  与 preg_match_all 原因?
      

  2.   

    preg_match只会搜索到第一个符合的结果就停止了,
    preg_match_all才会抓取所有的匹配结果。
    加()表示将()内部的匹配结果放入搜索结果的数组中,而Array[0]始终都是完全匹配正则表达式的那个结果。