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”之后得到五个字。对于第二部分(排除java.lang.Exception),我不会在单个正则表达式中执行此操作,而是测试第一个匹配项,如果它包含这些单词,则开始对字符串进行另一次搜索,现在就像

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