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

时间:2025-02-15 10:23:09
package test;

import ;
import ;

public class zhengze {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		String str="```#$%^!!";
		
		String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]{6,8}$";
		//①构造一个模式.
		Pattern p=(regEx);
		Pattern pA=("^[A-Z]{6,8}$");
		Pattern pa=("^[a-z]{6,8}$");
		Pattern pNum=("^[0-9]{6,8}$");
		
		
		//②建造一个匹配器
		Matcher m = (str);
		Matcher m1 = (str);
		Matcher m2 = (str);
		Matcher m3 = (str);
		
		//大小写字母,数字,特殊字符 全集匹配(只要字符串匹配其中任何一个或多个都可以)
		String reg="([A-Z]|[a-z]|[0-9]|[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]){6,8}$";
		Pattern pAll=(reg);
		Matcher mAll = (str);
		//③进行判断,得到结果
		
		//因为字符串str如果匹配一个就不可能匹配其他的,具有互异性。还要排除都不匹配的情况,不满足这四项的字符
		if(()||()||()||()){
			("只满足一种情况不符合要求");	
		}else if(()){
			("符合6-8位的密码要求");
		}else{
			("不符合要求");
		}
	
		
	}

}


或是用一个正则表达式

Pattern p = ("^(?![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=(regAcount);  
        Matcher mAcount = (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=(regemail);  
        Matcher memail = (acount); 
        if(!(()||())){
            errStr = "账号必须是数字、工号或邮箱";
            return errStr;
        }