正则里面的  .*?  是什么意思啊?这三个符号分别是什么意思啊?连在一起又是什么意思呢?

解决方案 »

  1.   

    .*?  =任意字符到下一个符合条件的字符往
    a.*?xxx   可以匹配
    abxxx
    axxxxx
    abbbbbxxx
    .....?表示非贪婪模式,即为匹配最近字符
    如果不加?就是贪婪模式
    a.*bc
    可以匹配
    abcbcbc
      

  2.   

    我来添上demo
    $s = 'abcbcbc';
    preg_match("/a.*?bc/i", $s, $aMatch1);
    preg_match("/a.*bc/i", $s, $aMatch2);
    print_r($aMatch1);
    Array
    (
        [0] => abc
    )
    print_r($aMatch2);
    Array
    (
        [0] => abcbcbc
    )
      

  3.   

    . 任意字符
    * 0~n个(n>=1)
    ? 0~1个.* 匹配0~n个字符
    .*? 非贪婪方式匹配(只要匹配到符合条件的串就终止)
      

  4.   

    简而言之,.*?  意思就是匹配任何字符,一直到结束
    over