什么是正则表达式,我应该通过String.split()
为了分割字符串由任何符号?用任何符号分割字符串
现在,任何符号我的意思是下列任何一项:
`~`, `!`, `@`, `#`, ...
基本上任何非字母和非数字打印的字符。
什么是正则表达式,我应该通过String.split()
为了分割字符串由任何符号?用任何符号分割字符串
现在,任何符号我的意思是下列任何一项:
`~`, `!`, `@`, `#`, ...
基本上任何非字母和非数字打印的字符。
你应该使用一个非字即\W
\W
是\w
\W
逆类似于[^a-zA-Z0-9_]
所以除了_
OR
将匹配任何非单词字符。你可以简单地使用[^a-zA-Z0-9]
我认为这有效。谢谢 – user1508893
你既可以是特定像Spring.split("[[email protected]$]")
或者列出你不想在Spring.split("[^\\w]")
\ w = [a-zA-Z0-9_] – pogo
已更新,谢谢 –
'[^ \ w] == \ W == [^ a-zA-Z0-9_]',所以它包含下划线。 – NullUserException
分裂您可以尝试使用这个值: -
str.split("[^a-zA-Z0-9]");
这将不包括underscore
。
\W
相当于: - "[a-zA-Z0-9_]"
@NullUserException。更新后。谢谢:) –
''[_^\ w]'不会做你认为它做的事情。 – NullUserException
哦。那么我们如何从中删除'_'? –
您可能需要使用\W
或^\w
。您可以在这里找到更多的细节:Regex: Character classes
String str = "[email protected]$d!e";
String[] splitted = str.split("\\W");
System.out.println(splitted.length); //<--print 4
或
String str = "[email protected]$d!e";
String[] splitted = str.split("[^\\w]");
System.out.println(splitted.length); //<--print 4
'[\\ W]'是多余的,为什么不只是'\\ W'? – NullUserException
@NullUserException:我开始使用不同的模式,例如'[^ a-zA-Z0-9]'然后换成'\ W' :)移除大括号。 –
你的意思是任何非字母数字字符? – thatidiotguy
是的,我想是的。 – user1508893
'.split(“[^ a-zA-Z0-9]”)' – NullUserException