如何在java中使用正则表达式实现字符限制?

时间:2016-09-01 10:53:45

标签: javascript java

基本上我有String restrict = "Hello+Hi";我希望使用正则表达式限制(/^[a-zA-Z0-9~!@#\(\.)]$/)以外的所有字符。

在javascript中这就是它的完成方式 field.value.match(/^[a-zA-Z0-9~!@#$%&^*()-_=.<>?)\(\)]+$/) 这将限制括号之间的所有字符。

我希望我的字符串只包含(/^[a-zA-Z0-9~!@#\(\.)]$/)

如果有人告诉我如何在java中这样做,我真的很感激。

1 个答案:

答案 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 +