请建议我使用正则表达式:
字符串:
这是文本)进行正则表达式测试。错误引起:错误模式(com.test.Validator.java:32)更多文本错误引起:错误模式(com.test.Validator2.java:65)更多文本
需要提取:
引起:错误的模式(com.test.Validator.java:32) 和 引起:错误模式(com.test.Validator2.java:65)
使用正则表达式模式:
引起:(。?)([^)])
的问题:
答案 0 :(得分:1)
您可以使用此正则表达式:
Caused by:[^)]+\)
请注意,您需要多个macthes的 g
修饰符。
在 Java 中,您需要一个额外的反斜杠:
Caused by:[^)]+\\)
此正则表达式匹配Caused by
后跟正数字符()
除外),后跟)
。
答案 1 :(得分:1)
对于Java,您可以使用下一个:
Pattern p = Pattern.compile("Caused by: [^)]+\\)");
Matcher m = p.matcher("Caused by: faulty pattern (com.test.Validator.java:32) and Caused by: faulty pattern (com.test.Validator2.java:65)");
while(m.find()){
System.out.println(m.group());
}