$file="[{\"name\":\"安徽省\",\"code\":\"340000\"},{\"name\":\"北京市\",\"code\":\"110000\"},{\"name\":\"福建省\",\"code\":\"350000\"},{\"name\":\"甘肅省\",\"code\":\"620000\"},{\"name\":\"廣東省\",\"code\":\"440000\"},{\"name\":\"廣西壯族自治區\",\"code\":\"450000\"},{\"name\":\"貴州省\",\"code\":\"520000\"},{\"name\":\"海南省\",\"code\":\"460000\"},{\"name\":\"河北省\",\"code\":\"130000\"},{\"name\":\"河南省\",\"code\":\"410000\"},{\"name\":\"黑龍江省\",\"code\":\"230000\"},{\"name\":\"湖北省\",\"code\":\"420000\"},{\"name\":\"湖南省\",\"code\":\"430000\"},{\"name\":\"吉林省\",\"code\":\"220000\"},{\"name\":\"江蘇省\",\"code\":\"320000\"},{\"name\":\"江西省\",\"code\":\"360000\"},{\"name\":\"遼寧省\",\"code\":\"210000\"},{\"name\":\"內蒙古自治區\",\"code\":\"150000\"},{\"name\":\"寧夏回族自治區\",\"code\":\"640000\"},{\"name\":\"青海省\",\"code\":\"630000\"},{\"name\":\"山東省\",\"code\":\"370000\"},{\"name\":\"山西省\",\"code\":\"140000\"},{\"name\":\"陝西省\",\"code\":\"610000\"},{\"name\":\"上海市\",\"code\":\"310000\"},{\"name\":\"四川省\",\"code\":\"510000\"},{\"name\":\"天津市\",\"code\":\"120000\"},{\"name\":\"西藏自治區\",\"code\":\"540000\"},{\"name\":\"新疆維吾爾自治區\",\"code\":\"650000\"},{\"name\":\"雲南省\",\"code\":\"530000\"},{\"name\":\"浙江省\",\"code\":\"330000\"},{\"name\":\"重慶市\",\"code\":\"500000\"}]";preg_match("#{\"name\":\"(.*?)\",\"code\":\"350000\"}#i",$file,$rg1);
  // print_r($rg1);exit();
$Province=$rg1[1];
不知道为什么始终得到我要的 福建省 求解。。

解决方案 »

  1.   

    header("content-type:text/html;charset=utf-8");
    $file="[{\"name\":\"安徽省\",\"code\":\"340000\"},{\"name\":\"北京市\",\"code\":\"110000\"},{\"name\":\"福建省\",\"code\":\"350000\"},{\"name\":\"甘肅省\",\"code\":\"620000\"},{\"name\":\"廣東省\",\"code\":\"440000\"},{\"name\":\"廣西壯族自治區\",\"code\":\"450000\"},{\"name\":\"貴州省\",\"code\":\"520000\"},{\"name\":\"海南省\",\"code\":\"460000\"},{\"name\":\"河北省\",\"code\":\"130000\"},{\"name\":\"河南省\",\"code\":\"410000\"},{\"name\":\"黑龍江省\",\"code\":\"230000\"},{\"name\":\"湖北省\",\"code\":\"420000\"},{\"name\":\"湖南省\",\"code\":\"430000\"},{\"name\":\"吉林省\",\"code\":\"220000\"},{\"name\":\"江蘇省\",\"code\":\"320000\"},{\"name\":\"江西省\",\"code\":\"360000\"},{\"name\":\"遼寧省\",\"code\":\"210000\"},{\"name\":\"內蒙古自治區\",\"code\":\"150000\"},{\"name\":\"寧夏回族自治區\",\"code\":\"640000\"},{\"name\":\"青海省\",\"code\":\"630000\"},{\"name\":\"山東省\",\"code\":\"370000\"},{\"name\":\"山西省\",\"code\":\"140000\"},{\"name\":\"陝西省\",\"code\":\"610000\"},{\"name\":\"上海市\",\"code\":\"310000\"},{\"name\":\"四川省\",\"code\":\"510000\"},{\"name\":\"天津市\",\"code\":\"120000\"},{\"name\":\"西藏自治區\",\"code\":\"540000\"},{\"name\":\"新疆維吾爾自治區\",\"code\":\"650000\"},{\"name\":\"雲南省\",\"code\":\"530000\"},{\"name\":\"浙江省\",\"code\":\"330000\"},{\"name\":\"重慶市\",\"code\":\"500000\"}]";preg_match("#{\"name\":\"([^\"]*)\",\"code\":\"350000\"}#i",$file,$rg1);
    $Province = $rg1[1];
    print_r($Province);
      

  2.   

    如果只是想要结果完全可以用json_decode方便快捷
      

  3.   

    因为你写的匹配的内容太多了,在这里.能匹配{\"name\":\"安徽省\",\"code\":\"340000\"},{\"name\":\"北京市\",\"code\":\"110000\"},{\"name\":\"福建省\",\"code\":\"350000\"}看出上面的红色字体就明白,因为你没有做限定,所有就会出现你说的问题,最简单就是把 . 匹配的内容加以限定,例如改成 [^}] (非}以外的字符),就能排除前2个匹配内容preg_match("#{\"name\":\"([^}]*?)\",\"code\":\"350000\"}#i",$file,$rg1);
      

  4.   

    preg_match('#{"name":"([^:]+)","code":"350000"}#i',$file,$rg1);