这似乎是一个众所周知的标题,但我真的遇到了一个问题。
这是我拥有的以及到目前为止所做的事情。
我验证了输入字符串,不允许使用这些字符:
&%$ ## @!〜
所以我这样编码:
String REGEX = "^[&%$##@!~]";
String username= "jhgjhgjh.#";
Pattern pattern = Pattern.compile(REGEX);
Matcher matcher = pattern.matcher(username);
if (matcher.matches()) {
System.out.println("matched");
}
答案 0 :(得分:5)
更改您的第一行代码
String REGEX = "[^&%$#@!~]*";
它应该可以正常工作。字符类之外的^
表示行的开头。字符类^
内的[]
表示对字符类中的字符进行否定。而且,如果您不想匹配空的用户名,请使用此正则表达式
String REGEX = "[^&%$#@!~]+";
答案 1 :(得分:2)
我想你想要这个:
[^&%$##@!~]*
答案 2 :(得分:2)
匹配有效输入:
String REGEX = "[^&%$#@!~]*";
匹配无效输入:
String REGEX = ".*[&%$#@!~]+.*";