0

次の形式でエラーメッセージを提供する正規表現が必要です。

[2011-09-21 17:53:24:446 GMT][75DABF9052639D387C4E2F8EF7DC516C.http-8080-18]  [com.abc.resolver.rest.CommComponent] ERROR Cannot get payload while processing error message
[2011-09-21 17:53:24:446 GMT][75DABF9052639D387C4E2F8EF7DC516C.http-8080-18][com.pqr.chktest.Client] ERROR Error connecting to http://beta.com/api/1 with response code: 401
[2011-09-21 17:53:24:446 GMT][75DABF9052639D387C4E2F8EF7DC516C.http-8080-18][com.pqr.chktest.Client] ERROR upload error: java.lang.Exception: Error connecting to beta server at http address http://beta.com

処理中にペイロードを取得できませんhttp://beta.com/api/1への接続中にアップロード エラーが発生しました: への接続中にエラーが発生しました

基本的に、「ERROR」という単語(大文字)の後の最初の5単語だけを取得したい

「ERROR (?[^[]+)」は単語全体を返します。しかし、最初の 5 単語だけでは機能しません。

また、ERROR の後の最初の 5 単語に java.lang.Exception が含まれている場合、それを結果に含めたくありません。代わりに、次の一致する単語が必要です。

どんな助けでも大歓迎です。

ありがとう!

4

1 に答える 1

0

正規表現を試す

"ERROR(\s+[^\s]+){5}"

"ERROR" の後に 5 つの単語を取得します。2番目の部分(除外java.lang.Exception)については、単一の正規表現では実行しませんが、最初の一致をテストし、これらの単語が含まれている場合は、文字列で別の検索を開始します。

"java.lang.Exception:(\s+[^\s]+){5}"
于 2011-09-22T17:31:37.647 に答える