在可选括号之间提取字符串

时间:2014-01-17 10:56:36

标签: java regex

我试图在多个括号之间提取字符串,但它也应该没有任何括号。这就是我现在所拥有的

Pattern pw = Pattern.compile("\\(?(.*)\\)?\\^\\(?(.*)\\)?");
    Matcher m = pw.matcher("2+1^(3+4)");
    if(m.find()){
        System.out.println(m.group(1));
        System.out.println(m.group(2));
    }"

打印:

2+1
3+4)

它应该是:

2+1
3+4

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

尝试使用以下方法使其变得非贪婪:

.*?

而不是.*

你的正则表达式:

Pattern pw = Pattern.compile("\\(?(.*?)\\)?\\^\\(?(.*?)\\)?");