基本上我有String restrict = "Hello+Hi";
我希望使用正则表达式限制(/^[a-zA-Z0-9~!@#\(\.)]$/)
以外的所有字符。
在javascript中这就是它的完成方式
field.value.match(/^[a-zA-Z0-9~!@#$%&^*()-_=.<>?)\(\)]+$/)
这将限制括号之间的所有字符。
我希望我的字符串只包含(/^[a-zA-Z0-9~!@#\(\.)]$/)
如果有人告诉我如何在java中这样做,我真的很感激。
答案 0 :(得分:3)
您可以使用String.matches
,它将整个String
与模式匹配。
在这种情况下:"Hello+Hi".matches("\\p{Alpha}+")
将返回false
,因为+
不是单词字符。
为避免混淆:模式中的+
是1个字符重复的贪心量词。
p{Alpha}
代表字母字符,需要双重转义。
请参阅文档here。
修改强>
由于您编辑了您的要求,只需使用自定义类,如下所示,加上量词:
"Hello+World".matches("[a-zA-Z0-9~!@#\\().]+") // returns false because of the +