使用grok debugger时正则不匹配

发布于 2022-09-02 10:53:27 字数 716 浏览 16 评论 0

在写一个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>.*)

匹配的结果如下:

clipboard.png

这个显然有问题。。。
初学正则不太明白应该怎么修改。我希望最后匹配完都能得到第一个Query_time那样的结果。
希望有相关经验的前辈不吝指教,谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

高跟鞋的旋律 2022-09-09 10:53:27

主要是你正则表达式匹配的的问题,后边的正则直接匹配到了所有字符。
如果你后边那些项只需要数字的话,那就直接匹配数字。
(?<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]+)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文