正则 (.+?)  和 (.*?) 有何区别?我怎么试了一下,没看到有啥区别??哪位大哥解释下...

解决方案 »

  1.   

    你又注册一个帐号了?
    主要区别在于+和*
    +:至少重复一次
    *:0次到多次
    如:$s = "abcdd";
    preg_match("/.+?/", $s, $aMatch1);
    preg_match("/.*?/", $s, $aMatch2);
    print_r($aMatch1);
    Array
    (
        [0] => a
    )
    print_r($aMatch2);
    Array
    (
        [0] => 
    )
      

  2.   

    当然是有区别的!$s = 'abcd';
    preg_match_all('/(.+?)/', $s, $r);
    print_r($r[1]);//Array ( [0] => a [1] => b [2] => c [3] => d ) preg_match_all('/(.*?)/', $s, $r);
    print_r($r[1]);//Array ( [0] => [1] => a [2] => [3] => b [4] => [5] => c [6] => [7] => d [8] => )