1
我想写一个正则表达式来解析出我有一个旧的IRC日志。正则表达式解析日志。
正则表达式:
(\d\d:\d\d)(<)(@|\+)(.+?)>(.*)
日志示例:
= 00:00<@billy> text text text text text text text text text text text text text text text
= 00:03<+tom> text text text text text text
= 00:03<somedude> text text
我已经能够分析出,我从日志需要,除了不具备运营商用户的一切(@)或声道(+)状态。
因此,当我运行的正则表达式我得到如下:
[('00:00', '<', '@', 'bill', " text text text text text text text text text text text text text text text ")]
[('00:00', '<', '+', 'tom', " text text text text text text ]
[]
因此, 'somedude' 缺失。有没有人有任何关于如何更好地处理这个问题的提示?
使该组中加入'可选的结束?'。 '(\ d \ d:\ d \ d)<(?[@ +])(?+)(。*)()>'。请参阅https://regex101.com/r/XJESLT/1。好吧,我想有些团体在这里可以减少,随意按照你的需求重新调整模式。 –
看,也许['(\ d {2}:\ d {2})<([@+]?[^>] *)>(。*)'](https://regex101.com/r/XJESLT/2)更好? ('[^>]'可能会匹配一个换行符,''[^> \ n] *'可能会更好) –
@WiktorStribiżew没有任何建议适用于我。如果有帮助,我使用Python 3.0和're'。 – icomefromchaos