2016-11-21 6 views
2

Java例外アノムをログファイルから取得しようとしていますが、"原因: "の文字列を除外したいと考えています。Oniguruma正規表現バージョン6.0.0regex java exception exclude "原因:

^.+Exception 

リターン:それの前の文字列:

"Caused by: java.nio.file.NoSuchFileException" 

は、どのように私は例外名をキャプチャーしますが、「によって引き起こされる」無視する正規表現を書くことができます。グループを取り込むという名前

^Caused\s*by:\s*(?<exception>[\w.]+) 

(?<exception>[\w.]+)グループ「例外」に一致するとキャプチャます(と変数を作成:これは、あなたが次のパターンでをキャプチャを使用することが完全に理解Logstashに

+0

そして、何^ 'について。+ Exception'?それは動作するはずです。 –

+0

が動作しませんhttp://rubular.com/r/JFI3pukx4yでテストされました – Arturski

+0

あなたが書いたように、「原因:」を含む行と一致しないため、動作しています。* Java例外をキャプチャしようとしています。 "原因:"文字列*のないログファイル。あなたが実際にやっていることでない場合は、質問を更新してください。 –

答えて

1

を使用します同じ名前)1 +単語(文字、数字またはアンダースコア)または.文字。

何かをチェックして、必要とするように、あなたの質問に答えるが、試合からそれを除いて、あなたは前後参照を使用することがあります。

(?<=^Caused by:).*?Exception 

this Rubular demoを参照してください。そして、以下のhttps://grokdebug.herokuapp.com/でのテストです:(?!。*によって引き起こさ:)

enter image description here

+0

こんにちはWiktorのソリューションに感謝します!私は2つの値をgrokデバッガで生成しています。 { "例外":[ [ "に起因:java.nio.file.NoSuchFileException" ]、 [ "java.nio.file.NoSuchFileException" ] ] } – Arturski

+0

そして、あなたは( '使用する場合?(?<= ^原因:)。??例外) '? –

+0

はまだ2つの値を返しますが、どちらも正しいです。 { "例外":[ [ "java.nio.file.NoSuchFileException" ]、 [ "java.nio.file.NoSuchFileException" ] ] } – Arturski

関連する問題