$pi = "/(\w{4})(\d{3})-(\d{4})(\w{2})(\d{1}?)-(2)/x";$phones ="Call555-1212or1-800-555-1212";echo preg_match($pi,$phones)? "1": "2";这样他就不行$pi = "/(\w{4})(\d{3})-(\d{4})(\w{2})(\d{1}?)-/x";$phones ="Call555-1212or1-800-555-1212";echo preg_match($pi,$phones)? "1": "2";这样就行!神马回事啊正则

解决方案 »

  1.   

    $pi = "/(\w{4})(\d{3})-(\d{4})(\w{2})(\d{1}?)-/x";
    匹配到的是
    Array
    (
        [0] => Call555-1212or1-
        [1] => Call
        [2] => 555
        [3] => 1212
        [4] => or
        [5] => 1
    )如果加上 (2)
    则需要 $phones ="Call555-1212or1-800-555-1212"; 中套红的位置为 2 才能匹配成功
      

  2.   

    $pi = "/(\w{4})(?<name1>\d{3})-(\d{4})(\w{2})(\d{1}?)-(\k<name1>)/x";
    请问这样写对吗?