LogStash Grok 正则表达式反向引用

LogStash Grok regex backreferences

我真的希望我正在做一些愚蠢的事情并且看不到问题...这在 Perl 或其他语言中是微不足道的。显然 grok https://grokconstructor.appspot.com/RegularExpressionSyntax.txt 支持反向引用,但我无法使它们工作。我需要匹配一些基本的东西:

identifier - Static Text identifier Rest Of Line

所以我的 grok 表达式应该是这样的:

%{DATA:id_name} - Static Text %{GREEDYDATA:rest_of_line}

但是使用http://grokdebug.herokuapp.com/总是会产生编译错误。如果我使用任何 \k 符号,同样的事情。我试过将第一个变量括在括号中,双反斜杠,随机排列,无法使其工作。

如有任何帮助,我们将不胜感激。谢谢!

我认为 %{DATA:id_name} 不会生成可与自定义正则表达式反向引用一起使用的命名捕获。相反,您可以将 %{DATA} 包装在命名捕获中,然后向后引用它,如下所示:

(?<id_name>%{DATA}) - Static Text \k<id_name> %{GREEDYDATA:rest_of_line}