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}
我真的希望我正在做一些愚蠢的事情并且看不到问题...这在 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}