/*
* 正則表達式:符合一定規則的表達式
* 作用:用於專門操作字符串
* 特點:用一些特定的符號來表示代碼的操作,簡化書寫
* 所以學習正則表達式就是學習一些特定的符號的使用
* 好處:可以簡化對字符串的複雜操作
* 弊端:符號定義越多,正則越長,閱讀性越差
*
* 具體操作功能:
* 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