如何从map的输出字符串中提取值?

时间:2014-07-12 10:05:24

标签: php regex

我有一些字符串作为地图的输出。

如何从字符串中提取纬度和经度的最后两个值。由于输出字符串是:

10337 Lamar Avenue, Overland Park, KS 66207, USA, 38.94048888688807, -94.65758273359376

Mirzapur To Niyana Road, Niyana, Haryana 125044, India, 29.163692827306072, 75.83599163535155

301-349 South Walnut Street, Coffeyville, KS 67337, USA, 37.04092845300189, -95.61538733789064

现在我想将字符串中的最后两个值存储在两个不同的变量中。

for example from first string:

$Latitude = 38.94048888688807 ;
$Longitude = -94.65758273359376 ;

我的正则表达式很差,所以请帮助我。

2 个答案:

答案 0 :(得分:3)

尝试Positive Lookbehind并从索引1和2获取匹配的组。

(?<=,\s)(-?\d+\.\d+),\s(-?\d+\.\d+)$

Online demo

示例代码:

$re = "/(?<=,\\s)(-?\\d+\\.\\d+),\\s(-?\\d+\\.\\d+)$/m"; 
$str = ...

preg_match_all($re, $str, $matches);

答案 1 :(得分:2)

这是您正在寻找的表达方式:

,\s*(-?\d+\.\d+),\s*(-?\d+\.\d+)$

捕获组1将包含纬度,捕获组2将包含经度。

提供小提琴here