使用Multiple Delimiters进行字符串拆分而不是修剪生成的字符串

时间:2015-07-25 15:47:59

标签: regex string split

我的用例是在多个分隔符上拆分字符串。说, and \n

我有这样的事情:

String str = "abc
              xyz, jkl"

String[] tokens = str.split(",+|\\n+);

我的结果令牌是这样的:

abc\n (i.e. abc with a new line) 
xyz and jkl are correctly trimmed.

基本上所有','分隔的字符串都被正确分割,而'\ n'分隔的字符串附加了'\ n'。我想知道为什么\ n附加它们并且有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

也许你已经登上了窗户,并且那里还有一个回车\r(与\n不同)。

试试这个:

String[] tokens = str.split("[,\\n\\r]+");

如果不期望令牌包含空格,您还可以在拆分期间通过将\s添加到拆分正则表达式来删除标记中的空格:

String[] tokens = str.split("[,\\n\\r\\s]+");