Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-GPS位置正则表达式应该是什么样子?_Php_Regex - Fatal编程技术网

PHP-GPS位置正则表达式应该是什么样子?

PHP-GPS位置正则表达式应该是什么样子?,php,regex,Php,Regex,我很快就要学会使用正则表达式了,但现在我只需要知道“50.080215,14.393983”GPS格式的检查应该是什么样子,谢谢你,迈克。你想在字符串中找到两个用逗号分隔的十进制数(可能还有空格?) $pattern = "/(?P<lat>(\d+(\.\d+)?)),\s*(?P<lon>(\d+(\.\d+)?))/"; $pattern=“/(?P(\d+(\.\d+))),\s*(?P(\d+(\.\d+))/”; 这假设如果不需要,每个数字的小数部分可能不

我很快就要学会使用正则表达式了,但现在我只需要知道“50.080215,14.393983”GPS格式的检查应该是什么样子,谢谢你,迈克。

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

$pattern = "/(?P<lat>(\d+(\.\d+)?)),\s*(?P<lon>(\d+(\.\d+)?))/";
$pattern=“/(?P(\d+(\.\d+))),\s*(?P(\d+(\.\d+))/”;
这假设如果不需要,每个数字的小数部分可能不存在,并且对精度的位数没有限制。根据您的输入语料库,这可能比您想要的更频繁地匹配。有了更好的规范,就可以构建更紧密的模式。例如,如果我们指定纬度为-90到90,经度为-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})?)/";
$pattern=“/(?P-?([1-8]?[1-9]|[1-9]0)(\.\d{1,6})(?P-?(1?[1-7][1-9]| 1?[1-8]0 |[1-9]?[0-9])(\.\d{1,6})/”;

本规范中有一个小错误,它将与假设规范之外的“90.999999180.9999999”相匹配。请更正此错误,作为读者练习。

是lat,long还是long,lat?请参阅