对于初学者的问题的道歉,我不熟悉正则表达式。在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
我建议你将字符串的组成格式(双,字符串,字符串)正则表达式的外面,因为不同程度的格式。