获取以特定字符串开头的所有子字符串

时间:2016-03-23 04:10:10

标签: java regex string

我需要获取以特定字符串开头的所有子字符串。例如,如果字符串是“ sum([Calculation_8630212162300975])/ zn(sum([Calculation_6310302163817118]))”,我应该将输出作为“ Calculation_8630212162300975 ”并且“ Calculation_6310302163817118

我尝试了以下代码。当存在这样的字符串的单个实例时,它工作正常。但是在多次出现的情况下,它会返回从第一个括号开始直到最后一个括号的字符串。对于上面提到的示例,它返回 Calculation_8630212162300975])/ zn(sum([Calculation_6310302163817118

Matcher m = Pattern.compile("\\[([^)]+)\\]").matcher(formula);                                                                                    

while(m.find()) {

System.out.println(m.group(1));  

} 

1 个答案:

答案 0 :(得分:0)

努力而有力的解决方案

String value = "sum([Calculation_8630212162300975])/zn(sum([Calculation_6310302163817118]))";

    if(value.contains("sum")){
        String valueDum= value.substring(value.indexOf("sum")+3,value.length());

        if(valueDum.contains("sum")){
            String myFirstValue = valueDum.substring(0,valueDum.indexOf("/"));
            String mySecondValue = valueDum.substring(valueDum.indexOf("sum")+3,valueDum.length());
        }
    }
}