我需要将以下输入字符串分割为第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,]
提前致谢
答案 0 :(得分:0)
您可以尝试使用正则表达式:
(?<=^\d+,\d+,\d+,\d+,\d+,)
private static final Pattern REGEX_PATTERN =
Pattern.compile("(?<=^\\d+,\\d+,\\d+,\\d+,\\d+,)");
public static void main(String[] args) {
String input = "12,23,34,45,56,78,9,";
System.out.println(java.util.Arrays.toString(
REGEX_PATTERN.split(input)
)); // prints "[12,23,34,45,56,, 78,9,]"
}
答案 1 :(得分:0)
而不是使用split()
方法,您可以尝试匹配此模式:
\\G((?:\\d+,?){5}|(?:\\d+,?)+)
答案 2 :(得分:0)
或者
(\d+,){5}(\d+,)*
解释
(\ d +,){5} ...匹配'数字','5次
(\ d +,)* ...匹配剩余部分