【发布时间】:2017-04-04 21:56:32
【问题描述】:
我正在尝试从日志文件中捕获 Java 异常,但我想使用 Oniguruma 正则表达式版本 6.0.0 排除“Caused by:”字符串:
^.+Exception
返回:
"Caused by: java.nio.file.NoSuchFileException"
我如何编写一个捕获异常名称但忽略它前面的“Caused by:”字符串的正则表达式。这将在 Grok Logstash 中使用
【问题讨论】:
-
那么
^(?!.*Caused by:).+Exception呢?它应该可以工作。 -
不工作,在rubular.com/r/JFI3pukx4y测试
-
它正在工作,因为它与包含
Caused by:的行不匹配,正如您所写 我正在尝试从没有“原因:”的日志文件中捕获 Java 异常字符串。如果这不是您真正在做的事情,请更新问题。 -
是的,但这意味着我想捕获 java 异常名称,而不是“Caused By:”字符串。我需要正则表达式只返回“java.nio.file.NoSuchFileException”
-
这应该是问题的一部分,而不是评论。使用
(?<=^Caused by: ).+Exception。或者,如果您可以访问捕获组,请使用^Caused by:\s*(.+Exception)。你在哪里使用正则表达式?格罗克/Logstash?爪哇?
标签: regex logstash logstash-grok