【发布时间】:2016-09-15 17:26:59
【问题描述】:
我正在尝试用换行符替换字符串的每 4 个逗号。
在下面的javascript中效果很好
var str = "blue,red,green,orange,yellow,brown,black,teal,purple,gold,silver"
str = str.replace(/(([^,]*,){4}([^,]*)),/g, '$1\n').
并给我正确的输出,如下所示:
蓝色、红色、绿色、橙色、黄色
棕色,黑色,蓝绿色,紫色,金色
银
我正在尝试用
在 java 中做同样的事情String str = "blue,red,green,orange,yellow,brown,black,teal,purple,gold,silver";
str = str.replaceAll("([^,]*,){4}([^,]*)", "$1\n");
带输出:
橙色,
蓝绿色,
,金,银
谁能帮我找到正确的表达式,用java中的新行替换第n(第四)个逗号
【问题讨论】:
-
这不是有效的java。它不会编译。从那开始,我们会看到我们能做些什么。
-
This Regexr 揭示了按预期工作的模式......
-
@ThisNameBetterBeAvailable - 谢谢,我试过了 - (([^,]*,){4} - 我看到第一行和第二行中出现了我不想要的逗号。任何线索如何删除那个。
-
捕获缓冲区被覆盖每个量化通道。
([^,]*,){4}所以你只能得到最后一个。使用相同的正则表达式有什么问题?