我希望能够按照以下格式解析来自服务器控制台(Multicraft)的行:
"source" <[ignore]"username"> "message"
下面是一个聊天的例子:
[Server] <Johndonne> hello everyone!
[Chat] <[VIP][Owner]bit2shift> hey
[Chat] <[Mod]waisman> hello there
[Chat] <[Builder]bluesniper> hey john xD
我的第一个策略是使用这个正则表达式:
^(?P<source>\[[^\]]+\])?\s*<\[.+\](?P<sender>[^>]*)>\s*(?P<message>.*)$
但如果用户名前没有 [tag] 则失败,例如文本字符串为:
[Server] <Johndonne> hello everyone!
为了测试正则表达式,我使用了 re.findall(regex, line) 来获取带有参数的元组。有任何想法吗?