Java正则表达式ReplaceAll与正则表达式结果修剪分隔符之前和之后的空格

时间:2014-01-28 06:59:12

标签: 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("[:,]");
  

预期输出:
参数[0] =“嘿”;
参数[1] =“什么了   man“;
arguments [2] =”1033“;
参数[3] =”是“;
  争论[4] =“没有意义”;
论证[5] =“不”;
  arguments [6] =“okay”;
arguments [7] =“1111”;
  arguments [8] =“aaaaa”;
arguments [9] =“bbbbb”;


我需要能够获得所有10个参数并在每个分隔符;,之前删除空白,并在每个分隔符之后立即删除所有空白。

如果只用单独拆分而不用替换就可以做到这一点很酷,我假设有一些非常专业的正则表达式技能,任何事情都可以在一个班轮中完成。

1 个答案:

答案 0 :(得分:3)

您可以添加\\s*来包含分隔符周围的空格。试试这种方式

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

样本:

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