0
我在Graylog中構建了一個提取器來提取tac_plus syslog數據。匹配多個匹配的正則表達式
我有一個日誌:
<70>Oct 13 10:10:05 auth tac_plus[17354]: 2015-10-13 10:10:05 -0500#01110.10.89.1#011jmartinez#011tty132#01110.10.1.27#011stop#011task_id=146#011timezone=CDT#011service=shell#011start_time=1444747732#011priv-lvl=15#011cmd=show running-config <cr>
我想提取011標記之間的indvidual語句。我能拿到第一部分,用IP:
(?<=#011)(.*?)(?=#011)
現在我想提取「jmartinez」。我想:
#011.*?#011(.*)(#011)
但它匹配:
jmartinez#011tty132#01110.10.1.27#011stop#011task_id=146#011timezone=CDT#011service=shell#011start_time=1444747732#011priv-lvl=15
如果我這樣做:
#011.*?#011(.*)(#011tty)
它似乎工作,但我寧願它不依賴於看到#011tty因爲它可能是其他信息中的其他內容。
下一個呢?我怎麼能提取tty132,10.10.1.27,停止,task_id = 146等
任何幫助將不勝感激!
好神。我發誓我嘗試過。我無法一次捕捉到它們,但這對我非常有幫助!謝謝! –
@Jose只記得'。*'吞下了一切,但仍然匹配。實際上,它會將所有內容都消耗到輸入的末尾,然後回溯到下一個項匹配某個項。 – Bohemian