请教正则表达式如何判断输入的字符是全英文或者是英数混合
比如:aaa;a12;12a,但不能是全数字的,也不能有特殊符号
------解决方案--------------------
Scanner s=new Scanner(System.in);
String str=s.nextLine();
final String REGEX="^[a-z;]+$";
final String REGEX1="^[0-9;]+$";
final String REGEX2="^[a-z0-9;]+$";
Matcher m=Pattern.compile(REGEX, Pattern.CASE_INSENSITIVE).matcher(str);
if(m.find()){
System.out.println("纯英");
}else{
m=Pattern.compile(REGEX1, Pattern.CASE_INSENSITIVE).matcher(str);
if(m.find()){
System.out.println("不能为纯数字");
}else{
m=Pattern.compile(REGEX2, Pattern.CASE_INSENSITIVE).matcher(str);
if(m.find()){
System.out.println("英数混合");
}else{
System.out.println("不能有特殊字符");
}
}
}
我这个逻辑和正则是比较简单明了的,可能有高手写出正则能把纯数字和特殊字符算一种情况,这样少一个判断。