2013-02-20 2 views
2

Я пытался проверить правильность формата координат. В настоящее время я хочу сохранить координату. Но когда формат неправильный, маркеры не появятся на моей карте.Подтвердить правильный формат для координат с помощью REGEX

Это часть моего образца кода.

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

Будет ли число десятичных знаков всегда равным 6? – sp00m

ответ

7

Это должно работать для вас:

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

Интернет RegexPlanet Демо: http://fiddle.re/20pm

Это позволяет любой координату номер, который необязательно начинается с + или -. Число может быть целым или двойным (но точка должна быть заключена с цифрами, если таковая имеется).

Наконец, вы можете получить широту и долготу как group1 и group2.

+0

спасибо! этот товар хорош для использования. – aishul

+0

Эта ошибка является ошибкой и не проверяет диапазон от -90 до 90 и от -180 до 180. – Sategroup

+0

@ Группа: регулярные выражения являются неправильным инструментом для проверки диапазонов номеров. Это полезно только для извлечения координат из текста для дальнейшей обработки и, возможно, проверки, но это не так и не может быть 100% инструментом проверки правильности. – mvp

 Смежные вопросы

  • Нет связанных вопросов^_^