我这样写正则表达式错在哪里?

来源:百度知道 编辑:UC知道 时间:2024/05/16 15:32:45
public static boolean CheckForm(String name, String pwd) {
Pattern p = null; // 正则表达式
Matcher m = null; // 操作的字符串
p = Pattern.compile("[^0-9A-Za-z]");
if (p.matcher(name).find() || p.matcher(pwd).find()) {
return true;
}
return false;
}
public static boolean CheckForm(String name, String pwd) {
String regEx="\\w{4,8}";//正则表达示
Pattern p = null;
p = Pattern.compile(regEx);
java.util.regex.Matcher m = p.matcher(name);
java.util.regex.Matcher n = p.matcher(pwd);
if (m.find() || n.find()) {
return false;
}
return true;
}

我重新改了一下,还是不行,我想表达的意思是,输入的帐号和密码必须是4到8个数字或字母或下划线

这里不能用find(),find()只需部分匹配就返回true,完全匹配用matches(),把if (m.find() || n.find())改为if (!m.matches() || !n.matches())就可以了。
更简单的:
public static boolean CheckForm(String name, String pwd) {
String regEx="\\w{4,8}";
if (!name.matches(regEx) || !pwd.matches(regEx)) {
return false;
}
return true;
};