String.split()
为了按任何符号拆分字符串,我应该传递什么正则表达式?
现在,任何符号都是指以下任何一种:
`~`, `!`, `@`, `#`, ...
基本上任何非字母和非数字的可打印字符。
String.split()
为了按任何符号拆分字符串,我应该传递什么正则表达式?
现在,任何符号都是指以下任何一种:
`~`, `!`, `@`, `#`, ...
基本上任何非字母和非数字的可打印字符。
你应该使用一个非单词,即\W
\W
是相反的\w
\W
类似于[^a-zA-Z0-9_]
,因此将匹配任何非单词字符,除了_
或者
你可以简单地使用[^a-zA-Z0-9]
你可以尝试使用这个: -
str.split("[^a-zA-Z0-9]");
这将不包括underscore
.
\W
相当于: -"[a-zA-Z0-9_]"
您可以具体喜欢Spring.split("[~!@$]")
或列出您不想拆分的值Spring.split("[^\\w]")
您可能想要使用\W
或^\w
。您可以在此处找到更多详细信息:正则表达式:字符类
String str = "a@v$d!e";
String[] splitted = str.split("\\W");
System.out.println(splitted.length); //<--print 4
或者
String str = "a@v$d!e";
String[] splitted = str.split("[^\\w]");
System.out.println(splitted.length); //<--print 4