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