簡體   English   中英

使用正則表達式從字符串中獲取經度/經度

[英]Regular expression to obtain lat/lng from a string

我有這種格式的字符串。

“1784_Anarchy +啤酒+合作單位〜+ 5 +豪斯+農場+中心〜Stannington〜莫珀斯〜NE61 + 6AW_ ^ 55.13033〜-1.702607”

模式看起來像嗎

preg_match_all("\^d+\", $map, $out, PREG_PATTERN_ORDER);

所以緯度-\\ ^ d + .d +? lng-\\〜d + .d +嗎?

嘗試獲取經度和緯度值-緯度:55.13033 lng:-1.702607

如果lat和lng字符串的位置保持不變,這是一種解決方法。 否則發布其他實例

$str = '1784_Anarchy+Brew+Co~Unit+5+Whitehouse+Farm+Centre~Stannington~Morpeth~NE61+6AW_^55.13033~-1.702607';

 preg_match_all("/(?<=[\^|\~])\-?([\d\.]+)/", $str, $matches);
 $lat = $matches[0][0];
 $lng = $matches[0][1];

 echo "lat: $lat, Lng: $lng";

 //output: lat: 55.13033, Lng: -1.702607

以下正則表達式表達式應隔離坐標:

(-?\d{1,3}\.)\d{5,6}

()內的代碼塊將與可選的“-”匹配負LAT / LONG,后跟1到3個數字的組(經度最多為180),后跟一個“點”。

表達式的其余部分將匹配5到6位數字(根據示例中的精度)。

只要搜索字符串或多或少保持與所述字符串相同,這應該起作用:

演示

希望這可以幫助 !!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM