正则表达式从字符串中提取单词

时间:2018-08-19 18:17:27

标签: regex logstash-grok

我想从该字符串中过滤以下单词APPLE

"[BANANA => APPLE]"

我尝试使用RegEx (?<=\> ).+?(?=])来做到这一点,但这不能解决我的问题。

编辑:我正在Grok Debugger中尝试此操作。 %{TO:client}

TO (?<=\> ).+?(?=])

但没有显示匹配项。

2 个答案:

答案 0 :(得分:1)

这是您要找的东西吗?仅匹配=>]

之间的所有内容
=> (.+?)\]

您的单词将在第一组中。当然,仍有通过前瞻等方式改进它的空间。

我建议使用https://regex101.com/调试和验证您的正则表达式。

答案 1 :(得分:1)

Grok uses an Oniguruma regex engine,通常使用命名组来创建字段:

  

您可以使用Oniguruma语法进行命名捕获,这将使您匹配一段文本并将其保存为字段

您应使用命名模式的捕获组

=>\s*(?<client>[^\]]+)

它将匹配=>,0+个空格,然后将捕获到除“ client”以外的一个或多个字符的“ client”组中(然后将创建]字段)。

相关问题