我正在尝试拆分此输入:
sum(12),sum(3,34,23),122
分为这些:
sum(12)
sum(3,34,23)
122
我有以下代码
pattern = Pattern.compile("^|,|\\G(sum\\(.*\\)|[0-9]+)$|,");
matcher = pattern.matcher(parameter);
while(matcher.find()) {
System.out.println("match: " + matcher.group(1));
}
parameter = calculateFormula(parameter);
但是很匹配
sum(12),sum(3,34,23)
我应该怎样做才能得到我想要的结果。
最佳答案
使用“?”。例如
String parameter = "sum(12),sum(3,34,23),122";
Pattern pattern = Pattern.compile("(sum\\(.*?\\)|[0-9]+)");//
Matcher matcher = pattern.matcher(parameter);
while (matcher.find()) {
System.out.println("match: " + matcher.group(1));
}
将打印:
match: sum(12)
match: sum(3,34,23)
match: 122
关于java - 在 java 中使用正则表达式进行分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17634706/