有一行:
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, "_"))
打乱了论据的顺序。
pat.sub("_", s)返回了预期的结果