使用grok debugger时正则不匹配
在写一个logstash的配置文件,目的是将一段日志通过grok过滤成我需要的格式。完成这个任务需要通过正则表达式。
http://grokdebug.herokuapp.com/
以上是测试正则表达式与日志格式是否匹配的可用网址
日志格式部分如下:
# Query_time: 1.899845 Lock_time: 0.000072 Rows_sent: 0 Rows_examined: 581632
我写的正则如下:
(?<Query_time>[0-9]{1,2}\.[0-9]{6})\s(?<Lock_time>.*)\s(?<Rows_sent>.)\s(?<Rows_examined>.*)
匹配的结果如下:
这个显然有问题。。。
初学正则不太明白应该怎么修改。我希望最后匹配完都能得到第一个Query_time那样的结果。
希望有相关经验的前辈不吝指教,谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
主要是你正则表达式匹配的的问题,后边的正则直接匹配到了所有字符。
如果你后边那些项只需要数字的话,那就直接匹配数字。
(?<Query_time>[0-9]{1,2}.[0-9]{6})s(?<Lock_time>[0-9]{1,2}.[0-9]{6})s(?<Rows_sent>[0-9]+)s(?<Rows_examined>[0-9]+)