$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);正则式最好用单引号,双引号遇上转义很麻烦
如果只是想要结果完全可以用json_decode方便快捷
因为你写的匹配的内容太多了,在这里.能匹配
{"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);
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号