Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Oniguruma模式-行尾将不起作用_Regex_Logstash_Logstash Grok - Fatal编程技术网

Regex Oniguruma模式-行尾将不起作用

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

我有一个类似的字段名为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(.*)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
  • 但是,在输入的末尾没有单词“Exception”(
    \z
    )。在“异常”和输入结束之间有其他内容。所以你也必须匹配这个额外的输入。这可能很简单:

    (?<exception>java(.*)Exception).*\z
    
    (?java(.*)异常)。*\z
    
    这将分为:

  • 单词
    java
  • 任何内容,包括空字符串(
    *
  • 单词
    Exception
  • 任何内容,包括空字符串(
    *
  • 输入的结尾(
    \z

  • 您需要哪个捕获括号取决于您想做什么。

    请编辑您的问题,以包括您拥有的完整正则表达式以及如何使用您编写的正则表达式。您好@Progman。到目前为止,这是我拥有的第二个和整个正则表达式。它将用于elasticsearch和logstash@MartaZagrajek标记
    \z
    \z
    $
    用于查找输入字符串中的行尾或内容结尾,但正则表达式不使用任何这些标记。请在您的问题中详细说明您想做什么以及如何在应用程序/代码中实际使用正则表达式。@Amadan但您可以在grok中使用Oniguruma模式。我从中删除了\z,但现在添加了它非常感谢您的复杂解释!我看到这是可行的:但在elasticsearch中的grok调试器上并没有,所以我将继续进行这方面的工作。