uL1[0]=[00920601,2H 48\,0,6,2,1,2];
uL1[1]=[00920603,2H 45\,0,0,2,2,0];请问如何用preg_match_all分离字符串,注意要把"]=["包括在里面

解决方案 »

  1.   

    uL1[0]=[00920601,2H 48\,0,6,2,1,2];
    uL1[1]=[00920603,2H 45\,0,0,2,2,0];我想得到的结果
    uL1[0]=array(00920601,2H 48\,0,6,2,1,2)
    uL1[1]=array(00920603,2H 45\,0,0,2,2,0)
      

  2.   


    //不知是不是你想要的结果
    $str = 'uL1[0]=[00920601,2H 48\,0,6,2,1,2];';
    $str = rtrim($str, ';');
    list($var, $value) = explode('=', $str);
    $value = preg_replace('/^\[|\]$/','',$value);
    $string = '$'.$var.'='.var_export(explode(',',$value),true).';';
    eval($string);
    print_r($uL1[0]); 
    /*
    输出结果:
    Array ( [0] => 00920601 [1] => 2H 48\ [2] => 0 [3] => 6 [4] => 2 [5] => 1 [6] => 2 ) 
    */
      

  3.   

    preg_match_all("/[\[,]([^,\]]*)/", 'uL1[0]=[00920601,2H 48\,0,6,2,1,2];', $links);
    print_r($links['1']);
    /*输出:
    Array ( [0] => 0 [1] => 00920601 [2] => 2H 48\ [3] => 0 [4] => 6 [5] => 2 [6] => 1 [7] => 2 ) 
    除了第一个不是  其他都是了*/
      

  4.   


    uL1[0]='[00920601,2H 48\,0,6,2,1,2]';
    preg_match_all('/\w+\s+\w+\\\\|\w+/',uL1[0],$array);
    print_r($array[0]); //输出:
      Array ( [0] => 00920601 [1] => 2H 48\ [2] => 0 [3] => 6 [4] => 2 [5] => 1 [6] => 2 )