PHP - GPS LOCATION正则表达式应该如何?

时间:2011-08-09 21:58:54

标签: php regex

我将不得不学习很快使用正则表达式,但现在我只需要知道如何检查“50.080215,14.393983”GPS格式,谢谢,迈克。

1 个答案:

答案 0 :(得分:1)

你想在字符串中找到两个用逗号分隔的十进制数字(可能是空格?)?

$pattern = "/(?P<lat>(\d+(\.\d+)?)),\s*(?P<lon>(\d+(\.\d+)?))/";

这假设如果不需要,则每个数字的小数部分可能不存在,并且对精度的位数没有限制。根据您的输入语料库,这可能比您想要的更频繁。通过更好的规格,可以构建更紧密的图案。例如,如果我们指定纬度将以-90到90(包括端点)运行,经度将从-180到180(包括180和180),并且两者都可以具有最多6位数的精度,我们可以构造此模式:

$pattern = "/(?P<lat>-?([1-8]?[1-9]|[1-9]0)(\.\d{1,6})?)(?P<lon>-?(1?[1-7][1-9]|1?[1-8]0|[1-9]?[0-9])(\.\d{1,6})?)/";

本规范中存在一个小错误,它将匹配“90.999999,180.999999”,这超出了假设规范。将此左侧更正为读者的练习。

相关问题