用任何符号分割字符串

时间:2012-10-26 16:09:03

标签: java regex symbols string-split

为了将字符串拆分为任何符号,我应该使用String.split()传递的正则表达式是什么?

现在,通过任何符号,我的意思是以下任何一种:

`~`, `!`, `@`, `#`, ...

基本上是任何非字母和非数字可打印字符。

4 个答案:

答案 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