为了将字符串拆分为任何符号,我应该使用String.split()
传递的正则表达式是什么?
现在,通过任何符号,我的意思是以下任何一种:
`~`, `!`, `@`, `#`, ...
基本上是任何非字母和非数字可打印字符。
答案 0 :(得分:5)
你应该使用非单词,\W
\W
与\w
\W
与[^a-zA-Z0-9_]
类似,因此会匹配除_
之外的任何非单词字符
或强>
您只需使用[^a-zA-Z0-9]
答案 1 :(得分:3)
你可以尝试使用它: -
str.split("[^a-zA-Z0-9]");
这不包括underscore
。
\W
相当于: - "[a-zA-Z0-9_]"
答案 2 :(得分:1)
您可以像Spring.split("[~!@$]")
一样具体,也可以列出您不希望在Spring.split("[^\\w]")
分割的值
答案 3 :(得分:1)
您可能希望使用\W
或^\w
。您可以在此处找到更多详细信息:Regex: Character classes
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