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

bra*_*ebg 4 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");
 }
Run Code Online (Sandbox Code Playgroud)

Nar*_*ala 5

像这样改变你的第一行代码

String REGEX = "[^&%$#@!~]*";
Run Code Online (Sandbox Code Playgroud)

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

String REGEX = "[^&%$#@!~]+";
Run Code Online (Sandbox Code Playgroud)