我需要传递给java.lang.String.split()以使用所有空白字符(' ','\t', '\n'等)作为分隔符将字符串分割为子字符串数组的正则表达式模式是什么?


当前回答

之类的东西

myString.split("\\s+");

这将所有空格分组为分隔符。

如果我有一个字符串:

"Hello[space character][tab character]World"

这将产生字符串“Hello”和“World”,并省略[空格]和[制表符]之间的空白。

正如VonC指出的,反斜杠应该转义,因为Java首先会尝试将字符串转义为一个特殊字符,并将其发送给解析。你想要的是字面上的“\s”,这意味着你需要传递“\\s”。这可能会让人有点困惑。

s相当于[\\t\\n\\x0B\\f\ r]。

其他回答

你也可以有一个UniCode不间断空格xA0…

String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking

你可以使用下面的语句用换行符分割字符串:

 String textStr[] = yourString.split("\\r?\\n");

你可以使用下面的语句用空格分割字符串:

String textStr[] = yourString.split("\\s+");
String str = "Hello   World";
String res[] = str.split("\\s+");

“\\s+”应该可以

为了让它在Javascript中工作,我必须做以下工作:

myString.split(/\s+/g)