Я предлагаю использовать
import re
text = "18-02-202010:44:48PEDMILANO OVEST- BINASCOA1,40"
print( re.sub(r'^\d{2}-\d{2}-\d{5,6}:\d{2}:\d{2}(.*?)\d+(?:,\d+)?$', r'\1', text) )
Его также можно записать как
re.sub(r'^\d{2}-\d{2}-\d{5,6}:\d{2}:\d{2}|\d+(?:,\d+)?$', '', text)
Или, если вы предпочитаете сопоставление и захват:
m = re.search(r'^\d{2}-\d{2}-\d{5,6}:\d{2}:\d{2}(.*?)\d+(?:,\d+)?$', text)
if m:
print( m.group(1) )
См. онлайн Python демо . С этим решением ваши данные могут начинаться с любого символа и будут содержать любой символ (за исключением символов разрыва строки, так как ваши данные в одной строке).
Regex details
^
- начало строки \d{2}-\d{2}-\d{5,6}:\d{2}:\d{2}
- строка даты и времени: две цифры, -
, две цифры, -
, пять или шесть цифр, :
, две цифры , :
две цифры (.*?)
- группа 1: любой ноль или более символов, кроме символов разрыва строки, как можно меньше \d+(?:,\d+)?
- шаблон значений типа int / float : 1+ цифр, за которыми следует необязательная последовательность ,
и 1+ цифр $
- конец строки.
См. Демонстрационный пример regex .