#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 добро пожаловать