Java正则表达式ReplaceAll与正则表达式Result一起修剪分隔符前后的空格

Java正则表达式ReplaceAll与正则表达式Result一起修剪分隔符前后的空格,java,regex,split,delimiter,replaceall,Java,Regex,Split,Delimiter,Replaceall,我尽了最大的努力,这就是我目前所拥有的 String input = "hey,what up man:1033:yes,okay that makes sense ,not: okay:1111, aaaaa,bbbbb"; String input2 = input.replaceAll("(.*)\\s([^:,])+\\s(.*)", "\1\2\3"); String arguments[] = input2.split("[:,]"); 预期输出:参数[

我尽了最大的努力,这就是我目前所拥有的

String input = "hey,what up man:1033:yes,okay that makes sense     ,not:       okay:1111,     aaaaa,bbbbb";
String input2 = input.replaceAll("(.*)\\s([^:,])+\\s(.*)", "\1\2\3");
String arguments[] = input2.split("[:,]");
预期输出:
参数[0]=“嘿”
参数[1]=“怎么了 人”
参数[2]=“1033”
参数[3]=“是”
论点[4]=“好的,这是有意义的”
参数[5]=“非”
参数[6]=“好的”
参数[7]=“1111”
参数[8]=“AAAA”
参数[9]=“bbb”


我几乎需要能够获取所有10个参数,并在每个分隔符前面去掉空格
以及每个分隔符后面的所有空格


如果可以只使用split而不使用replaceAll来实现这一点,那就太酷了。我假设使用一些非常专业的正则表达式技巧,任何东西都可以在一行中实现。

您可以通过添加
\\s*
来在分隔符周围包含空格。这样试试

String arguments[] = input.split("\\s*[:,]\\s*");
演示:


@SSpoke很高兴你喜欢:)这些正则表达式向导可以做不可能的事情,看起来很简单哈哈
String input = "hey,what up man:1033:yes,okay that makes sense     ,not:       okay:1111,     aaaaa,bbbbb";
String arguments[] = input.split("\\s*[:,]\\s*");
for (int i=0; i<arguments.length; i++){
    System.out.println(i+")"+arguments[i]);
}
0)hey
1)what up man
2)1033
3)yes
4)okay that makes sense
5)not
6)okay
7)1111
8)aaaaa
9)bbbbb