什麼是正則表達式,我應該通過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