Regex Oniguruma模式-行尾将不起作用
我有一个类似的字段名为problem:Regex Oniguruma模式-行尾将不起作用,regex,logstash,logstash-grok,Regex,Logstash,Logstash Grok,我有一个类似的字段名为problem: java.lang.NullPointerException: null\\n09:56:49.712 pl.com.agora.api.client.rest.invocation.FutureCallbacksSupport {HttpClient@2052321524-scheduler} ERROR : Uri invocation failure callback failed. 我想从中排除异常 (?<exception>java
java.lang.NullPointerException: null\\n09:56:49.712 pl.com.agora.api.client.rest.invocation.FutureCallbacksSupport {HttpClient@2052321524-scheduler} ERROR : Uri invocation failure callback failed.
我想从中排除异常
(?<exception>java(.*)Exception\z)
(?java(.*)异常\z)
因此,我将使用字段exception和值:java.lang.NullPointerException
似乎找不到行不通的尽头\z或\z没有按我希望的方式工作。
在这里也没有找到答案:
它用于logstash和grok比赛:
filter {
grok {
match => { "message" => '%{TIME:timestamp} (\[)?(%{DATA:logger})?(\])? \{%{DATA:thread}\} %{LOGLEVEL:level} : (?<problem>(.|\r|\n)*)' }
remove_field => ["message"]
}
grok {
match => { "problem" => '(?<exception>java(.*)Exception\z)' }
}
}
过滤器{
格罗克{
match=>{“message”=>'%{TIME:timestamp}(\[)?({DATA:logger})(\])?\{%{DATA:thread}\}%{LOGLEVEL:level}:(?(.|\r |\n)*')
删除_字段=>[“消息”]
}
格罗克{
匹配=>{“问题”=>'(?java(.*)异常\z)}
}
}
正则表达式(?java(.*)Exception\z)
将搜索以下内容:
java
*
)Exception
\z
\z
)。在“异常”和输入结束之间有其他内容。所以你也必须匹配这个额外的输入。这可能很简单:
(?<exception>java(.*)Exception).*\z
(?java(.*)异常)。*\z
这将分为:
java
*
)Exception
*
)\z
)您需要哪个捕获括号取决于您想做什么。请编辑您的问题,以包括您拥有的完整正则表达式以及如何使用您编写的正则表达式。您好@Progman。到目前为止,这是我拥有的第二个和整个正则表达式。它将用于elasticsearch和logstash@MartaZagrajek标记
\z
、\z
和$
用于查找输入字符串中的行尾或内容结尾,但正则表达式不使用任何这些标记。请在您的问题中详细说明您想做什么以及如何在应用程序/代码中实际使用正则表达式。@Amadan但您可以在grok中使用Oniguruma模式。我从中删除了\z,但现在添加了它非常感谢您的复杂解释!我看到这是可行的:但在elasticsearch中的grok调试器上并没有,所以我将继续进行这方面的工作。