正則表達式之匹配

/*
 * 正則表達式:符合一定規則的表達式
 * 		作用:用於專門操作字符串
 * 		特點:用一些特定的符號來表示代碼的操作,簡化書寫
 * 			所以學習正則表達式就是學習一些特定的符號的使用
 * 		好處:可以簡化對字符串的複雜操作
 * 		弊端:符號定義越多,正則越長,閱讀性越差
 * 
 * 具體操作功能:
 * 1.匹配:String類中的matches()方法
 * 		matches(String regex) 告知此字符串是否匹配給定的正則表達式。返回boolean類型的值
 * 		matches()方法用規則匹配整個字符串,只要有一處不符合規則,就匹配結束,返回false
 */
package 類;

import java.util.regex.*;

public class 正則表達式 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		正則表達式 d = new 正則表達式();
	
		//匹配手機號碼
		d.Tel();
		//匹配QQ號碼
		d.QQ();
		//匹配郵箱
		d.Email();
	}
	//匹配手機號
	public void Tel() {
		/*
		 * 定義規則如下:
		 * 手機號碼只能是11位,第一位只能是1,第二位可以是3,5,7;
		 * 後面9位可以是0-9的任意一個數字
		 */
		String tel = "13254687601";
		
		//{9}表示\\d正好出現9次
		String telReg = "1[357]\\d{9}";
		
		System.out.println("驗證電話 : " + tel.matches(telReg));
		
	}
	
	public void QQ() {
		/*
		 * 定義規則如下:
		 * 第一位不能是0,QQ號碼的長度是6-15位;
		 * 除第一位以外的位可以是0-9的任意一個數字
		 */
		String qq = "1367387530";
		//{5,14}表示\\d出現的次數在5-14之間
		String qqReg = "[1-9]\\d{5,14}";
		System.out.println("驗證QQ : " + qq.matches(qqReg));
	}
	
	public void Email() {
		/*
		 * 定義規則如下:
		 * [email protected]
		 * 如上面這種形式,@前面的位數在5-15之間,爲大寫字母小寫字母和數字三種形式;
		 * @後面.前面的位數在2-3位之間,只能是qq或者163;
		 * .後面的爲com,而且只能是com
		 */
		
		String email = "[email protected]";
		String []emialReg = {"\\w{5,15}[email protected]","\\w{5,15}[email protected]"};
		
		boolean flag = email.matches(emialReg[0]);
		
		//如果不是163郵箱,則繼續驗證是否是qq郵箱
		if(flag == false)  
			flag = email.matches(emialReg[1]) ? true : false;
		System.out.println("驗證郵箱 : " + flag);
	}
}

運行結果
驗證電話 : true
驗證QQ : true
驗證郵箱 : true

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章