原字符串 String str="SUM(TA0047/(TA0012+TA0023+SUM((TA0034+TA0045))))"
程序处理过的字符串
String newStr="TA0047/(TA0012+TA0023+(TA0034+TA0045))"
目的就是去掉SUM() 或者AVG() 等等....
思路.....不清晰....求助
原字符串 String str="SUM(TA0047/(TA0012+TA0023+SUM((TA0034+TA0045))))"
程序处理过的字符串
String newStr="TA0047/(TA0012+TA0023+(TA0034+TA0045))"
目的就是去掉SUM() 或者AVG() 等等....
思路.....不清晰....求助
试一下这个
public static void main(String[] args) {
// 按指定模式在字符串查找
String line = "SUM(TA0047/(TA0012+TA0023+SUM((TA0034+TA0045))))";
String pattern = "(.*)?SUM\\((.*)\\)";
// 创建 Pattern 对象
Pattern r = Pattern.compile(pattern);
// 现在创建 matcher 对象
Matcher m = r.matcher(line);
while (m.find()) {
String s = null;
try {
//尝试获取第二个
s = m.group(2);
line = m.group(1) + m.group(2);
} catch (Exception e) {
//不存在第二个,则获取第一个
s = m.group(1);
line = m.group(1);
}
System.out.println("Found value: " + s);
m = r.matcher(line);
}
System.out.println(line);
}