對於初學者的問題的道歉,我不熟悉正則表達式。在Java中使用正則表達式解析城市座標
有一個簡單的方法來分析這樣的行
輸出結果字符串,雙,雙使用正則表達式?
例如
「紐約40.7127°N 74.0059°W」 或
「華盛頓38°53' 55.133" N 77°02' 15.691" W」
謝謝
對於初學者的問題的道歉,我不熟悉正則表達式。在Java中使用正則表達式解析城市座標
有一個簡單的方法來分析這樣的行
輸出結果字符串,雙,雙使用正則表達式?
例如
「紐約40.7127°N 74.0059°W」 或
「華盛頓38°53' 55.133" N 77°02' 15.691" W」
謝謝
最簡單和最簡單的方法是,如果你想使用正則表達式像你說的那麼先檢查非數字的開始,以獲得通過命名空間
String test = "New York 40.7127°N 74.0059°W ";
String[] splited = test.split("\\s+");
for (String item : splited)
System.out.println(item);
分裂
Pattern p = Pattern.compile("^(\\D*)");
那麼這個數字代表的
Pattern p2 = Pattern.compile("(\\d|\\.)*");
,你可以得到的結果是這樣的:
while (m2.find())
System.out.println(m2.group(0));
檢查這裏: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
如果你想獲得字符串或雙那麼你只需要解析結果就好。
假設問題不是專門針對°字符的。正則表達式
Pattern.compile("([\w ]+) (\d.*\w) (\d.*\w)");
將捕獲在每個串組,如下所示:
「華盛頓38°53' 55.133" N 77°02' 15.691" W」
「紐約40.7127° ñ74.0059°W」
將被分組爲
華盛頓,38°53' w^
.133" N,77°02' 15.691"紐約,40.7127°N,74.0059°W
我建議你將字符串的組成格式(雙,字符串,字符串)正則表達式的外面,因爲不同程度的格式。