Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,每1000个逗号拆分一个字符串_Java_Regex - Fatal编程技术网

在Java中,每1000个逗号拆分一个字符串

在Java中,每1000个逗号拆分一个字符串,java,regex,Java,Regex,我无法使用正则表达式拆分字符串中每1000个逗号的字符串。我们可以为字符串中的每三个逗号拆分,但不能为第1000个逗号拆分 String data = "0,0,1,2,4,5,3,4,6......"; String[] array = data.split("(?<=\\G\\d+,\\d+,\\d+),"); //Magic :) // to reveal magic see explanation below answer for(String s : array){ S

我无法使用正则表达式拆分字符串中每1000个逗号的字符串。我们可以为字符串中的每三个逗号拆分,但不能为第1000个逗号拆分

String data = "0,0,1,2,4,5,3,4,6......";
String[] array = data.split("(?<=\\G\\d+,\\d+,\\d+),"); //Magic :) 
// to reveal magic see explanation below answer
for(String s : array){
    System.out.println(s);
}
String data=“0,0,1,2,4,5,3,4,6……”;

String[]array=data.split((?这可能就是您要查找的正则表达式:

 (\w*,){3}\K\S+

  \w             Matches a word ([a-zA-Z0-9_])
  \w*            Matches 0 or infinite number of words...
  \w*,           ... Followed by a coma
 (\w*,){n}       Match this group, n times
          \K     Reset the starting point of the match after the n elements
            \S+  Matches any word after the (n-1)th coma
其中
n
是元素数,加上1。因此在您的情况下,它应该是
1001


话虽如此,
regex
可能不是合适的工具:)

为什么要使用regex?问问自己:“我明白问题中的regex是做什么的吗?“试着用一个循环找到第1000个逗号的索引,然后做一个子字符串。这个问题怎么会是重复的!当然,除非你认为OP应该在他/她的正则表达式字符串中放置
\\d+,
1000次(我相信这也行不通).阅读问题。是否有人尝试过在副本中使用已接受的答案来完成此操作?我认为OP最初在那里获得了代码。@Devilshn查看第二个、第三个等答案。数据也是一个副本,只是最终结果不同。这是OP想要完成的最终结果…每1000个分隔符拆分一次。Granted、 其他一些答案可能会完成这项任务。
\K
在JavaGood point@ctwheels中不是有效的标记-这是否已添加到Java正则表达式中?然而,它是.NET、Perl或PCRE的高级功能。@DevilsHnd不幸的是,它在Java中仍然不是一项功能。我意识到这一点,但是本文作者没有也仍然。。.有人投了赞成票