php 正则表达式匹配 取得中文,如:中心东路 ;取得坐标,如 -2639.848633,-2544.598145

发布网友 发布时间:2022-04-06 02:02

我来回答

1个回答

热心网友 时间:2022-04-06 03:32

试编写脚本如下:

<?php
header('Content-type:text/html;charset=utf-8');

$s = "---== 21262502301, '中心东路', 8 nods, 10 nodes =>
1: 0,(-2639.848633,-2544.598145; 268,0,1; -1,-1) 21262460312,21262402701 4,-1
>1, 7.666504
>3942, 32.685303
>8744, 14.188477
>9265, 0.0869";

$pa = "{'([^`])+'}";
preg_match_all($pa, $s, $r);
$place = str_replace("'",'',$r[0][0]);

$pa = '{\(([\-?0-9]+\.[0-9]+),([\-?0-9]+\.[0-9]+);}';
preg_match_all($pa, $s, $r);
$x = $r[1][0];
$y = $r[2][0];

echo "地名:$place<br />坐标:$x, $y";

?>追问---== 21262502301, '中心东路', 8 nods, 10 nodes =>
。。。
---== 21262342301, '中心西路', 4 nods, 6 nodes =>
。。。
只有一条路就没问题,如果路多了,比如上面是两条了,请您给个循环输出的写法吧!

追答
1: 0,(-2639.848633,-2544.598145; 268,0,1; -1,-1) 21262460312,21262402701 4,-1
>1, 7.666504
>3942, 32.685303
>8744, 14.188477
>9265, 0.0869
2: 1,(-27.349609,-2544.432617; 265,0,1; -1,-1) 21262402701,21262402701 2,-1
>0, 7.666504
>2, 14.395996
>-1, -107374176.000000
>-1, -107374176.000000";

$pa = "{'([^`])+'}";
preg_match_all($pa, $s, $r);
$place = str_replace("'",'',$r[0][0]);

$pa = '{([\-?0-9]+\.[0-9]+),([\-?0-9]+\.[0-9]+)}';
preg_match_all($pa, $s, $r, PREG_SET_ORDER);

echo "地名:$place";
for($i=0;$i";
}

?>

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com