具有多个匹配的Logstash Grok模式

时间:2016-12-29 19:10:26

标签: regex logstash logstash-grok

我正在尝试编写一个将导致多个匹配的grok表达式。我正在解析一条有5次重复相同模式的行。

我已经能够制作一个带有正则表达式的简单模式,它将返回多个匹配但看起来Grok不会那样工作。我不太了解Ruby,所以我还没有真正检查过代码。

示例输入:

222444555

模式:

(?<number>\d{3})*

我原本期望这样的输出:

"number" : [
    [
        "222", "444", "555"
    ]
]

或类似的东西。这在Grok有可能吗?我知道我可以重复这种模式三次,但在某些方面,重复次数不明。

任何指针?

1 个答案:

答案 0 :(得分:0)

我采取了不同的方法。我用grok来提取重复的部分线。然后我使用cordova platform rm <platform>滤镜使用扫描功能将线条切割成部分:

ruby {}

这非常有效,因为它在segment属性中创建了一个数组,然后在该字段后跟ruby { code => "event.put('segment', event.get('segments').scan(/.{3}/)) } 我得到了我想要的多个事件。