我需要哪种正则表达式模式传递给java.lang.String.split()方法,以使用所有空格字符('','\\ t','\\ n'等)将字符串拆分为子字符串数组作为分隔符?
#1楼
Apache Commons Lang有一种使用空格字符作为分隔符的字符串分割方法:
StringUtils.split("abc def")
这可能比正则表达式模式更易于使用。
#2楼
“ \\\\ s +”应该可以解决问题
#3楼
在大多数regex方言中,可以使用一组方便的字符摘要来进行此类操作-这些是值得记住的好方法:
\\w匹配任何单词字符。
\\W匹配任何非单词字符。
\\s匹配任何空格字符。
\\S匹配除空格字符以外的任何字符。
\\d匹配任何数字。
\\D匹配除数字以外的任何内容。
搜索“ Regex备忘单”应该为您提供很多有用的摘要。
#4楼
某些东西
myString.split("\\s+");
这会将所有空白分组为分隔符。
因此,如果我有字符串:
"Hello[space][tab]World"
这将产生字符串"Hello"和"World"并省略[space]和[tab]之间的[space] 。
正如VonC指出的那样,应该转义反斜杠,因为Java首先会尝试将字符串转义为特殊字符,然后将其发送给解析。 您想要的是文字"\\s" ,这意味着您需要传递"\\\\s" 。 可能会造成一些混乱。
\\\\s等效于[ \\\\t\\\\n\\\\x0B\\\\f\\\\r]
#5楼
您可以使用以下语句按换行符分割字符串:
String textStr[] = yourString.split("\\r?\\n");
您可以使用以下语句按空格分隔字符串:
String textStr[] = yourString.split("\\s+");
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3156283