0

我正在尝试为拆分函数创建一个正则表达式,该函数将在单个破折号 (-) 或双破折号 (--) 或空格字符 (\s) 上拆分。我正在尝试“[-\\s]”,但是当它碰到双破折号时会返回一个额外的空字符串。

"12-34 56--7 89".split("[-\\s]"); 返回

12 
34
56

7
89
4

4 回答 4

2

使用"--?|\\s".

就我个人而言,我会看看是否有任何数量的破折号或空格可以用作分隔符,在这种情况下,请改用"[-\\s]+".

另请注意,这\\s不是空格字符。它表示任何空白字符。如果您只想要空格字符,请使用"--?| ".

于 2013-10-27T00:30:10.527 回答
0

尝试使用 "(?:--|-|\\s)" 作为您的正则表达式

于 2013-10-26T23:13:08.363 回答
0

你想要这个代码。注意它使用 | 为或。它还使用括号来显示双破折号一起出现。

String test = "a-b--c d";

String[] values = test.split("(--)|-|\\s");

for(String s: values) {
    System.out.println(s);
}
于 2013-10-26T23:13:32.190 回答
-1

你可以尝试类似的东西:

"[-\\ ]+"

例子 :

String str = "12-34  - 56--7 89";
String[] arraySplit = str.split("[-\\ ]+");
for (String s : arraySplit){
    System.out.println(s);
}

结果 :

12
34
56
7
89
于 2013-10-26T23:26:55.063 回答