首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

关于preg_match的有关问题

2013-08-01 
关于preg_match的问题$file[{\name\:\安徽省\,\code\:\340000\},{\name\:\北京市\,\code\

关于preg_match的问题
$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];


不知道为什么始终得到我要的 福建省 求解。。
[解决办法]

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);


[解决办法]
因为你写的匹配的内容太多了,在这里.能匹配

{"name":"安徽省","code":"340000"},{"name":"北京市","code":"110000"},{"name":"福建省","code":"350000"}

看出上面的红色字体就明白,因为你没有做限定,所有就会出现你说的问题,最简单就是把 . 匹配的内容加以限定,例如改成 [^}] (非}以外的字符),就能排除前2个匹配内容

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

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

热点排行