2016-09-01 23 views
2

基本上我有String restrict = "Hello+Hi";,我想限制使用正則表達式除(/^[[email protected]#\(\.)]$/)以外的所有字符。如何在java中使用正則表達式實現字符限制?

in javascript這是怎麼做的 field.value.match(/^[[email protected]#$%&^*()-_=.<>?)\(\)]+$/) 這將限制括號之間的所有字符。

我希望我的字符串只包含(/^[[email protected]#\(\.)]$/)

,如果有人告訴我如何做到這一點在Java中我真的很感激。

+0

就個人而言,我不認爲你在做什麼意義。你所要求的要求似乎不符合你的例子JavaScript似乎做... – musefan

+0

我更新了我的問題,請閱讀新行。 – jacky

+0

如果你想有更多的可能性,你可以使用java.util.Regex。更多你可以在這裏找到:https://docs.oracle.com/javase/7/docs/api/java/util/regex/package-summary.html –

回答

3

您可以使用String.matches,它將使用模式匹配整個String

在這種情況下:"Hello+Hi".matches("\\p{Alpha}+")將返回false,因爲+不是一個單詞字符。

爲了避免混淆:模式中的+是1+字符重複的貪婪量詞。

p{Alpha}表示字母字符,並且需要雙重轉義。

查看文檔here

編輯

既然你編輯您的要求,只需使用自定義類,如下所示,加量詞:

"Hello+World".matches("[[email protected]#\\().]+") // returns false because of the + 
+1

Nit:'\ w'還包括'_'和'0 -9',所以與OP的限制不太一樣。 –

+1

@AndyTurner啊謝謝。修正。 – Mena

+0

嘿你可以再次閱讀我的問題嗎?我爲什麼我想要添加一個新行? – jacky

相關問題