擅长:python、mysql、java
<p>我的解决方案与您的几乎相同,但将组5从<code>.*</code>转换为<code>\D*</code>,因此它将匹配所有内容,直到下一个数字</p>
<pre><code>import re
text = """2021-01-01 10:00:05 - Surname1 Name1 (Comment)
Blablabla
Blabla
2021-01-01 23:00:05 - Surname2 SurnameBis Name2 (WorkNotes)
What?
I don't know?
2021-01-02 03:00:05 - Surname1 Name1 (Comment)
Blablabla!"""
result = re.findall(r"(\d{4}-\d{2}-\d{2})\s(\d{2}:\d{2}:\d{2})\s-\s(.*?)\((.*)\)\n(\D*)(?:\n|$)", text)
print(result)
</code></pre>
<p>输出:</p>
<pre><code>[('2021-01-01', '10:00:05', 'Surname1 Name1 ', 'Comment', 'Blablabla\nBlabla'),
('2021-01-01', '23:00:05', 'Surname2 SurnameBis Name2 ', 'WorkNotes', "What?\nI don't know?"),
('2021-01-02', '03:00:05', 'Surname1 Name1 ', 'Comment', 'Blablabla!')]
</code></pre>