Почему re.sub заменяет всю строку? Как исправить?

Есть строка:

s = \
"""trash data
2020-06-23 09:55:48.672 log1
2020-06-23 09:59:28.617 log2
2020-06-23 09:59:28.617 log3
2020-06-23 10:00:51.234 log4
2020-06-23 10:00:51.234 log5"""

И есть регулярка:

pat = re.compile(r"^((\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}).+)$", flags=re.MULTILINE)

Почему pat.sub(s, "_") возвращает

"_"

Вместо ожидаемого

"""trash data
_
_
_
_
_"""

? На regex101 работает так, как я ожидаю.


Полный код:
import re
pat = re.compile(r"^((\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}).+)$", flags=re.MULTILINE)

s = \
"""trash data
2020-06-23 09:55:48.672 log1
2020-06-23 09:59:28.617 log2
2020-06-23 09:59:28.617 log3
2020-06-23 10:00:51.234 log4
2020-06-23 10:00:51.234 log5"""

print(pat.sub(s, "_"))

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

Автор решения: Михаил Муругов

Перепутал порядок аргументов. pat.sub("_", s) вернул ожидаемый результат

"""trash data
_
_
_
_
_"""
→ Ссылка