Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 以字符串开头,以';结尾的正则表达式模式)';多次发生_Regex_Pattern Matching - Fatal编程技术网

Regex 以字符串开头,以';结尾的正则表达式模式)';多次发生

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) 正则表达式模式使用: 原因:(.?)([^)]) 问题: 只给了我第一次机会 “)”被排除在外

请向我推荐正则表达式模式:

字符串:

这是文本)正在进行正则表达式测试。错误原因:错误模式(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您可以尝试以下正则表达式:
    (?)?