public static void main(String[] args) { Pattern pattern = Pattern.compile("[_0-9a-z]+"); boolean b1 = pattern.matcher("@#").find(); boolean b2 = pattern.matcher("@#2").find(); System.err.println("b1="+b1);//false System.err.println("b2="+b2);//true,說明pattern.matcher("xxx").find()是隻要有一個匹配,哪怕有其餘非法字符,也會認爲true boolean b3 = "d d的2a-".matches("[_0-9a-zA-Z\\s\u4E00-\u9FA5\\-—]+");//判斷數字字母中文下劃線空格 boolean b4 = "d d的2a-@".matches("[_0-9a-zA-Z\\s\u4E00-\u9FA5\\-—]+"); System.err.println("b3="+b3);//true System.err.println("b4="+b4);//false,說明,這個是判斷只包含,一旦出現非法字符,則false }