使用REGEX验证坐标的正确格式

时间:2013-02-20 09:43:28

标签: java regex latitude-longitude coordinate

我一直在尝试验证正确的坐标格式。目前我想保存坐标。但是当格式错误时,标记就不会出现在我的地图上。

这是我的一些示例代码。

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”。

任何人都可以帮我构建正则表达式以使这种格式有效吗?

全部谢谢

1 个答案:

答案 0 :(得分:9)

这应该适合你:

([+-]?\d+\.?\d+)\s*,\s*([+-]?\d+\.?\d+)

在线RegexPlanet演示:http://fiddle.re/20pm

这允许任何坐标为可选择以+-开头的数字。数字可以是整数或双数(但如果存在,则必须用数字括起来。)

最后,您可以获得group1和group2的纬度和经度。