Regex 以字符串开头,以';结尾的正则表达式模式)';多次发生
请向我推荐正则表达式模式: 字符串: 这是文本)正在进行正则表达式测试。错误原因:错误模式(com.test.Validator.java:32)少量文本错误原因:错误模式(com.test.Validator.2.java:65)少量文本 需要提取: 原因:错误模式(com.test.Validator.java:32) 及 原因:错误模式(com.test.Validator2.java:65) 正则表达式模式使用: 原因:(.?)([^)]) 问题:Regex 以字符串开头,以';结尾的正则表达式模式)';多次发生,regex,pattern-matching,Regex,Pattern Matching,请向我推荐正则表达式模式: 字符串: 这是文本)正在进行正则表达式测试。错误原因:错误模式(com.test.Validator.java:32)少量文本错误原因:错误模式(com.test.Validator.2.java:65)少量文本 需要提取: 原因:错误模式(com.test.Validator.java:32) 及 原因:错误模式(com.test.Validator2.java:65) 正则表达式模式使用: 原因:(.?)([^)]) 问题: 只给了我第一次机会 “)”被排除在外
您可以使用此正则表达式:
Caused by:[^)]+\)
请注意,对于多个macthes,您需要使用g
修饰符
在Java中,需要附加反斜杠:
Caused by:[^)]+\\)
此正则表达式匹配由以下原因引起的
,后面跟一个正数字符(除了)
),后面跟)
,进行假设,而不是始终希望匹配第一个右括号
Caused by:.*?\)
对于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());
}
#1与使用正则表达式而不是正则表达式本身的代码相关-您需要向我们展示该代码以帮助我们实现这一点(尽管为了对未来的访问者有用,可能最好将其作为单独的问题提问,但我相信在某个地方会有类似的重复)。谢谢……它非常有用。但是如何获取字符串中的所有事件呢?我正在使用Java@saptarshi您想将所有匹配项都放在一个字符串中吗?谢谢@Sven…..我已经使用Java搜索了所有其他匹配项…..谢谢您的帮助…需要其他帮助…..如何提取字符串直到“'),以“原因*:”开头,排除“原因*:”@saptashi您可以尝试以下正则表达式:(?)?