Флаг
>>> re.findall('Message: (.+?)$', s, re.M)
['1st message', '2dn message', '3rd message']
re.M
придает особое значение ^
и $
:
Если указано, символ шаблона '^'
совпадает в началестроки и в начале каждой строки (сразу после каждой новой строки);и символ шаблона '$'
совпадает в конце строки и в конце каждой строки (непосредственно перед каждой новой строкой).По умолчанию '^'
соответствует только в начале строки, а '$'
- только в конце строки и непосредственно перед новой строкой (если есть) в конце строки.
(.+?)$
соответствует хотя бы одному символу до ближайшего конца строкового символа.
edit : действительно, простая версия тоже будет работать:
>>> re.findall('Message: (.+)', s)
['1st message', '2dn message', '3rd message']
Я удивлен, что это не было в списке тех многочисленных вещей, которые вы пробовали:)