这似乎是一个众所周知的标题,但我在这方面确实遇到了一个问题。
这是我所拥有的以及到目前为止我所做的。
我已经验证了输入字符串,这些字符是不允许的:
&%$##@!~
所以我这样编码:
String REGEX = "^[&%$##@!~]";
String username= "jhgjhgjh.#";
Pattern pattern = Pattern.compile(REGEX);
Matcher matcher = pattern.matcher(username);
if (matcher.matches()) {
System.out.println("matched");
}
最佳答案
像这样更改你的第一行代码
String REGEX = "[^&%$#@!~]*";
它应该可以正常工作。字符类之外的 ^
表示行的开始。 ^
inside a character class []
表示字符类中字符的否定。而且,如果您不想匹配空用户名,请使用此正则表达式
String REGEX = "[^&%$#@!~]+";
关于Java 正则表达式验证特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7822577/