我正在Python中的正则表达式中寻找一个模式来执行以下操作:
对于格式如下的文本:
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!
我想返回:
[(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!)]
我设法找到了一个安静接近的结果:
text2 = """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?
Can you be clear?
2021-01-02 03:00:05 - Surname1 Name1 (Comment)
Blablabla!"""
LangTag = re.findall("(\d{4}-\d{2}-\d{2})\s(\d{2}:\d{2}:\d{2})\s-\s(.*?)\((.*)\)\\n(.*)(?:\\n|$)", text2)
print(LangTag)
解决方案可以是从初始文本中删除\n,但我希望避免,因为我以后需要它们。。。有什么想法吗
我的解决方案与您的几乎相同,但将组5从
.*
转换为\D*
,因此它将匹配所有内容,直到下一个数字输出:
你可以通过解决第一个问题来解决你的问题。然后重复该解决方案直到数据结束。通过这种分而治之的策略,代码很容易理解,但可以解决更大的问题,并且可以很容易地进行扩展
这将产生以下结果:
您可以像这样解析数据
这个输出
相关问题 更多 >
编程相关推荐