java - Java 最多只拆分 5 个逗号

标签 java regex string

我需要将下面的输入字符串拆分到第 5 个逗号。但是我也需要带逗号的字符串,就像在输出中一样。我试过了

(?<=\G\d+,\d+,\d+,\d+,\d+)

使用正则表达式。但它删除了第 5 个位置的逗号。

String data = "12,23,34,45,56,78,9,";
String[] array = data.split("(?<=\\G\\d+,\\d+,\\d+,\\d+,\\d+)"); //Magic :) 
// to reveal magic see explanation below answer
for(String s : array){
    System.out.println(s); //output = [12,23,34,45,56][78,9,]
}

有人可以尝试在下面的输出中给出我预期的解决方案吗?

input string[] = 12,23,34,45,56,78,9,`enter code here`
output = [12,23,34,45,56,][78,9,]

提前致谢

最佳答案

不使用 split() 方法,您可以尝试使用此模式进行匹配:

\\G((?:\\d+,?){5}|(?:\\d+,?)+)

关于java - Java 最多只拆分 5 个逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19372601/

相关文章:

java - 多部分上传文件servlet

java - Spring MVC + GWT RPC

javascript - 由两个逗号分隔的三个单词的正则表达式

Javascript 英国邮政编码验证

java - Java 中的 equals 字符串问题

通过命令行执行时出现 Java ClassNotFound 错误

java - jpa persist() 函数在 TABLE_PER_TENANT (multi_schema) Multi-Tenancy 策略中给出错误

java - 我需要使用没有数组或循环的 Java/RegEx 从大型数据文件的车辆描述字段中删除 ~50 个颜色名称

java - 如何从android中的字符串中获取特定数字?

java - 我如何在 Java 中实现一个字符串比较,无论它们是否匹配或不匹配(如果有)发生在哪里都需要相同的时间?