您的位置:首页 > 编程语言 > Java开发

java正则表达式,大写字母、小写字母、特殊字符、数字 两种两种以上组合匹配

2014-01-23 23:55 1806 查看
package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class zhengze {

/**
* @param args
*/
public static void main(String[] args) {

String str="```#$%^!!";

String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]{6,8}$";
//①构造一个模式.
Pattern p=Pattern.compile(regEx);
Pattern pA=Pattern.compile("^[A-Z]{6,8}$");
Pattern pa=Pattern.compile("^[a-z]{6,8}$");
Pattern pNum=Pattern.compile("^[0-9]{6,8}$");

//②建造一个匹配器
Matcher m = p.matcher(str);
Matcher m1 = pA.matcher(str);
Matcher m2 = pa.matcher(str);
Matcher m3 = pNum.matcher(str);

//大小写字母,数字,特殊字符 全集匹配(只要字符串匹配其中任何一个或多个都可以)
String reg="([A-Z]|[a-z]|[0-9]|[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]){6,8}$";
Pattern pAll=Pattern.compile(reg);
Matcher mAll = pAll.matcher(str);
//③进行判断,得到结果

//因为字符串str如果匹配一个就不可能匹配其他的,具有互异性。还要排除都不匹配的情况,不满足这四项的字符
if(m.matches()||m1.matches()||m2.matches()||m3.matches()){
System.out.println("只满足一种情况不符合要求");
}else if(mAll.matches()){
System.out.println("符合6-8位的密码要求");
}else{
System.out.println("不符合要求");
}

}

}


或是用一个正则表达式

Pattern p = Pattern.compile("^(?![A-Z]*$)(?![a-z]*$)(?![0-9]*$)(?![^a-zA-Z0-9]*$)\\S{6,8}$");

 

js正则匹配:/^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)(?![\W_]+$)\S{6,8}$/;

验证邮箱账号

String regAcount="^[a-zA-Z]*\\d+{0,20}$";
Pattern pAcount=Pattern.compile(regAcount);
Matcher mAcount = pAcount.matcher(acount);
String regemail="^[a-z0-9-]+(.[_a-z0-9-]+)*@([_a-z0-9-]+.)+([a-z]{2}|aero|arpa|biz|com|cn|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$";
Pattern pemail=Pattern.compile(regemail);
Matcher memail = pemail.matcher(acount);
if(!(mAcount.matches()||memail.matches())){
errStr = "账号必须是数字、工号或邮箱";
return errStr;
}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐