我需要哪种正则表达式模式传递给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