Регулярное выражение. Исключить перенос

У меня есть переменная s

13:50 - 15:20
4. ОСНОВЫ БУХГАЛТЕРСКОГО УЧЕТА
Рулева А.Е.
15:30 - 17:00
5. ИНОСТРАННЫЙ ЯЗЫК В ПРОФЕССИОНАЛЬНОЙ ДЕЯТЕЛЬНОСТИ
Цой А.И./ Гузенко Л.В.
17:10 - 18:40,   18:50 - 20:20
6,7. СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ

Мне нужно время записать в список вот так:

TIME: ['13:50 - 15:20', '15:30 - 17:00', '17:10 - 18:40,   18:50 - 20:20']

Я написал вот такой шаблон выражения:

patterTIME = r'[0-9][0-9]\:[0-9][0-9]\s*\-*\—*\s*[0-9][0-9]\:[0-9][0-9]\,*\s*\s*[0-9]*[0-9]*\:*[0-9]*[0-9]*\s*\-*\—*\s*[0-9]*[0-9]*\:*[0-9]*[0-9]*'

Но, к сожалению, берется перенос и цифра после него. Я получил такой результат:

TIME: ['13:50 - 15:20\n4', '15:30 - 17:00\n5', '17:10 - 18:40,   18:50 - 20:20']

Как исключить перенос(\n) в patter?


Ответы (1 шт):

Автор решения: Qwertiy

Выбирай:

  • Замени \s на [ \t].

  • Замени \s на (?!\r?\n)\s в тех местах, где надо запретить перенос.

    И про группу (вероятно, незахватываемую) не забудь, а то там дальше звёздочка.

  • Используй ^ и $ если питон поддерживает многострочный режим.

→ Ссылка