java - 在 java 中使用正则表达式进行分割

标签 java regex split

我正在尝试拆分此输入:

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/

相关文章:

javascript - 如何在javascript中将大数组拆分成小数组?

java - 如何使用 gradle 排除传递依赖并用另一个替代

java - 无法删除 Java 字符串中的换行符 (\n)。甚至有可能吗?

java - 如何使用 CXF 生成的客户端可视化发送的 XML 流

python - 正则表达式替换字符串末尾的 '...'

javascript - 如何判断字符串中是否包含任何非 ASCII 字符?

java - 本地日期不一致

c# - 正则表达式:在文本中用冒号替换句号

java - 如何使用 Java 拆分字符串?

javascript - 如何在angularjs中使用拆分