Как проверить, что географические координаты строкового типа находятся в правильном формате?

#python #python-3.x #regex

Вопрос:

У меня есть :

 coordinates = '50.0572, 1.20575'
 

координаты-это строковый тип.

50.0572 — широта 1.2057 — долгота

Я хотел бы найти самое простое решение, чтобы убедиться, что координаты находятся в формате типа: XX.XX, XX.XX

Пример : если координаты = ‘120, 1.20’ => Ложь =>> неправильный формат (ошибка на 120)

Спасибо.

Комментарии:

1. Я хотел бы проверить строку с помощью регулярного выражения

Ответ №1:

Вы можете сначала .split(',') проверить .isdigit() , есть ли у True вас int номер, и вы найдете bad format .

попробуйте это:

 >>> coordinates = '120, 1.20'
>>> [cor.isdigit() for cor in coordinates.split(',')]
[True, False]

>>> coordinates = '50.0572, 1.20575'
>>> if not any(cor.isdigit() for cor in coordinates.split(',')):
...    print("we don't have bad format")

we don't have bad format
 

Если вы хотите использовать regex , вы можете использовать re.compile() , а затем использовать match , как показано ниже:

 >>> import re
>>> flt_num = re.compile(r'd .d ')

>>> coordinates = '120, 1.20'
>>> for cor in coordinates.split(','):
...    if flt_num.match(cor):
...        print(f'{cor} has bad format')

120 has bad format
 

Комментарии:

1. Я хотел бы проверить формат с помощью регулярного выражения

2. @meuhfunk добро пожаловать