我想不到什么好方法可以使用一个正则表达式就分割整个字符串。
如果允许两步就可以做到正确分割。<?php$str = "{aa='aa', b1='b1'},{a2='a2', b2='b2'},{a3='a3', b4='b4'}";$arr = split("},{", $str);    // 这步的结果是数组中除了第一个开头带有 {,最后一个结尾带有 },其他都分割完毕。$arr[0] = ltrim($arr[0], "{");    // 去除数组第一个项目开头的 {$lastElementIndex = count($arr) - 1;
$arr[$lastElementIndex] = rtrim($arr[$lastElementIndex], "}");    // 去除数组最后一个项目结尾的 }print_r($arr);?>需要注意的是 split() 使用的 POSIX 正则表达式,表达式开头和结尾不应该带有 /。如果需要使用 PCRE 正则表达式,应使用 preg_split()。

解决方案 »

  1.   


    <?phpecho '<pre>';
    if(preg_match_all("/\{(.*?)\}/i", "{aa='aa', b1='b1'},{a2='a2', b2='b2'},{a3='a3', b4='b4'}", $matches)) {
    //for ($i=0; $i< count($matches[0]); $i++) {   
    //  echo $matches[1][$i]."\n";
    //}
    print_r($matches[1]);}
    echo '</pre>';?>
      

  2.   

    搞定了。。直接用json_encode保存到文件 然后再用json_decode读。。
    还是多谢。