我是网络编程的新手,特别是在正则表达式中。我想创建一个通用代码,它将从字符串中提取十进制数字因为我注意到我们应该总是十进制数的坐标,因此当我得到十进制数和坐标时拉出。我们真正的问题是有些坐标是( - )减去十进制数之前。如何解决这个问题呢。
我尝试使用此代码:
$string = 'http://maps.google.com/maps/api/staticmap?size=186x186&sensor=false&markers=color: red|size:mid|42.052661,-88.049441';
preg_match_all('#(([0-9]+){1,3}\.([0-9]+))#is', $string, $matches);
print_r($matches[1]);
但是我得到:数组([0] => 186x186 [1] => 42.052661 [2] => 88.049441)其中数组[0]不需要减号不进行坐标。还有其他方法,是否有可能建立这个。 (对不起我的英语,不是很好,但我正在努力学习)
答案 0 :(得分:1)
如果您只想匹配坐标,请尝试使用regexp:
(\-?[0-9]{1,3}\.[0-9]+)(?:,|\||$)
两个第一组匹配将是坐标。