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