我一直在尝试验证正确的坐标格式。目前我想保存坐标。但是当格式错误时,标记就不会出现在我的地图上。
这是我的一些示例代码。
String latlon = "3.169054, 101.714108";
String regex_coords = "/\\((\\-?\\d+\\.\\d+), (\\-?\\d+\\.\\d+)\\)/";
Pattern compiledPattern2 = Pattern.compile(regex_coords, Pattern.CASE_INSENSITIVE);
Matcher matcher2 = compiledPattern2.matcher(latlon);
while (matcher2.find()) {
System.out.println("Is Valid Map Coordinate: " + matcher2.group());
}
我希望用户能够使用逗号将此格式仅保存为“3.169054,101.714108”。
任何人都可以帮我构建正则表达式以使这种格式有效吗?
全部谢谢
答案 0 :(得分:9)
这应该适合你:
([+-]?\d+\.?\d+)\s*,\s*([+-]?\d+\.?\d+)
在线RegexPlanet演示:http://fiddle.re/20pm
这允许任何坐标为可选择以+
或-
开头的数字。数字可以是整数或双数(但如果存在,则必须用数字括起来。)
最后,您可以获得group1和group2的纬度和经度。