Java正则表达式验证特殊字符

时间:2011-10-19 14:08:42

标签: java regex validation

这似乎是一个众所周知的标题,但我真的遇到了一个问题。

这是我拥有的以及到目前为止所做的事情。

我验证了输入字符串,不允许使用这些字符:

  

&%$ ## @!〜

所以我这样编码:

 String REGEX = "^[&%$##@!~]";
 String username= "jhgjhgjh.#";
 Pattern pattern = Pattern.compile(REGEX);
 Matcher matcher = pattern.matcher(username);
 if (matcher.matches()) {
     System.out.println("matched");
 }

3 个答案:

答案 0 :(得分:5)

更改您的第一行代码

String REGEX = "[^&%$#@!~]*";

它应该可以正常工作。字符类之外的^表示行的开头。字符类^内的[]表示对字符类中的字符进行否定。而且,如果您不想匹配空的用户名,请使用此正则表达式

String REGEX = "[^&%$#@!~]+";

答案 1 :(得分:2)

我想你想要这个:

[^&%$##@!~]*

答案 2 :(得分:2)

匹配有效输入:

String REGEX = "[^&%$#@!~]*";

匹配无效输入:

String REGEX = ".*[&%$#@!~]+.*";