1

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

现在,任何符号都是指以下任何一种:

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

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

4

4 回答 4

5

你应该使用一个非单词,即\W

\W是相反的\w

\W类似于[^a-zA-Z0-9_],因此将匹配任何非单词字符,除了_

或者

你可以简单地使用[^a-zA-Z0-9]

于 2012-10-26T16:11:55.190 回答
3

你可以尝试使用这个: -

str.split("[^a-zA-Z0-9]");

这将不包括underscore.

\W相当于: -"[a-zA-Z0-9_]"

于 2012-10-26T16:12:54.840 回答
1

您可以具体喜欢Spring.split("[~!@$]")或列出您不想拆分的值Spring.split("[^\\w]")

于 2012-10-26T16:12:38.990 回答
1

您可能想要使用\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
于 2012-10-26T16:14:31.903 回答