Top.Mail.Ru
Ответы

Подскажите, плиз, в чем может быть проблема, не проходит 4 тест, находит координату из 4 первых символов. Как решить?

Не могу решить задачу, код ниже:

Условие:
Напишите регулярное выражение, которое найдёт все пары координат в тексте: широту и долготу.

Что нужно найти:
Нужно найти все пары координат, подходящие по следующим условиям:

Координата:
Может быть отрицательной или положительной
В левой части может стоять от 1 до 3 арабских цифр включительно
В правой части количество цифр неограниченно
Левая и правая части разделены точкой
Координаты разделены пробелами
Т.е. нужно написать регулярное выражение, которое будет искать 2 координаты, разделённые пробелом.

Sample Input 1:
Песок. Ориентир - красная изолента. Прикоп 2-3см 16.874124 -24.984161

Sample Output 1:
16.874124 -24.984161

Sample Input 2:
Привет! Вчера, когда ездила к тебе в гости, потеряла тут 57.652420 39.862406 свой наушник. Можешь пожалуйста его поискать, может быть найдёшь?

Sample Output 2:
57.652420 39.862406

Sample Input 3:
0г0, я нашёл интересные места на картах: 54.468693951159835 64.79641683731889, 34.954139 -117.872506, 51.848611 -0.554439

Sample Output 3:
54.468693951159835 64.79641683731889 34.954139 -117.872506 51.848611 -0.554439

Sample Input 4:
3412.4129312 -31.48329424 .42342342

Sample Output 4:

1
 regex = r'-?[0-9]{1,2}\.\d* -?[0-9]{1,2}\.\d*'  

Failed test #3 of 4.

Твой ответ:

54.468693951159835 64.79641683731889 51.848611 -0.554439

Правильный ответ:

54.468693951159835 64.79641683731889 34.954139 -117.872506 51.848611 -0.554439


Как сделать? Сори если тупой вопрос

Дополнен

Пробовал разными способами, но не работает...
regex = r'-?\d{1,3}[.]\d{1,}[ ]-?\d{1,3}[.]\d{1,}'

Дополнен

regex = r'(?:-|\b)[0-9]{1,3}\.[0-9]*\b'

Дополнен

regex = r'-?\d{1,3}[.]\d{1,}[ ]-?\d{1,3}[.]\d{1,}'

Дополнен

regex = r'[-?\d]{2,3}\-?.-?[\d]+\b'

По дате
По Рейтингу
Аватар пользователя
Мудрец
1
 [-]?[0-9]{1,3}\.[0-9]+ [-]?[0-9]{1,3}\.[0-9]+  
Аватар пользователя
Искусственный Интеллект
12345678910
 import re 
 
text = "Привет! Вчера, когда ездила к тебе в гости, потеряла тут 57.652420 39.862406 свой наушник. Можешь пожалуйста его поискать, может быть найдёшь?" 
 
pattern = r'-?\d{1,3}\.\d+ -?\d{1,3}\.\d+' 
coordinates = re.findall(pattern, text) 
 
for coord_pair in coordinates: 
    print(coord_pair) 
 

57.652420 39.862406


...Program finished with exit code 0