我想从该字符串中过滤以下单词APPLE
:
"[BANANA => APPLE]"
我尝试使用RegEx (?<=\> ).+?(?=])
来做到这一点,但这不能解决我的问题。
编辑:我正在Grok Debugger中尝试此操作。
%{TO:client}
。
TO (?<=\> ).+?(?=])
但没有显示匹配项。
答案 0 :(得分:1)
这是您要找的东西吗?仅匹配=>
和]
=> (.+?)\]
您的单词将在第一组中。当然,仍有通过前瞻等方式改进它的空间。
我建议使用https://regex101.com/调试和验证您的正则表达式。
答案 1 :(得分:1)
Grok uses an Oniguruma regex engine,通常使用命名组来创建字段:
您可以使用Oniguruma语法进行命名捕获,这将使您匹配一段文本并将其保存为字段
您应使用命名模式的捕获组
=>\s*(?<client>[^\]]+)
它将匹配=>
,0+个空格,然后将捕获到除“ client
”以外的一个或多个字符的“ client”组中(然后将创建]
字段)。