我正在尝试这个很长一段时间但没有帮助。
我有以下字符串:
42343473479 | 112273563 || 错误| XYZ123 | com.test.Test1 || WebContainer:
21 | java.lang.NullPointerException
at com.test.Test.compare(TestUtil.java:459)
在com.test.compare(TestUtil.java:457)
现在我需要一个模式来提取以下内容:
ERROR | XYZ123 | com.test.Test1 || WebContainer:21 | java.lang.NullPointerException)
在com.test.Test.compare(TestUtil.java:459)
可以有任何数字
:444)
:5723)
到目前为止我:
ERROR \ |。* [^)] +)
但我需要匹配直到')#39;一种模式。最后在和之间可以有任何数字。
请帮忙。
****问题改编。删除了要排除文本的部分*****
答案 0 :(得分:0)
您可以在java代码中尝试正则表达式,如下所示:
(^.*)(ERROR.*\\n)(.*\\n)(.*\\n){2}(.*(\\n|$))*
您可以使用replaceAll
代替:
$2$3$4
请注意,这是一个回答,请注意这个问题需要一个java正则表达式,其中\\
本身必须被转义。
未转义的版本:
(^.*)(ERROR.*\n)(.*\n)(.*\n){2}(.*(\n|$))*