常用的正則表達式符號:
下面我們我們就來看幾個常用的正在表達式:
1、IP地址的正則表達式:
public void checkIp(){
/**
* 格式:
* 前三位:
* 0到9
* 或者1到9,0到9
* 或者1,0到9,0到9
* 或者2,0到4,0到9
* 或者2,5, 0到5
* 後四位包括.,然後重複三位數字位:
* .
* 0到9, 0到9, 0到9
* 或者1, 0到9, 0到9
* 或者2, 0到4, 0到9
* 或者2,5, 0到5*/
String rexp = "([1-9]|"
+ "[1-9]\\d|"
+ "1\\d{2}|"
+ "2[0-4]\\d|"
+ "25[0-5])"
+ "(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}";
Pattern pattern = Pattern.compile(rexp);
Matcher mat = pattern.matcher("192.0.0.0");
boolean b = mat.matches();
System.out.println(b);
}
2、中文字符檢測:
public void checkChineseCharacter(){
Pattern p = null; //正則表達式
Matcher m = null; //操作的字符串
boolean b = false;
//正則表達式表示漢字的一串字符串
p = Pattern.compile("^[\u4e00-\u9fa5]+$");
m = p.matcher("直播吧");
b = m.matches();
System.out.println("中文名正確:"+b); //輸出:true
//
p = Pattern.compile("^[\u4e00-\u9fa5]+$");
m = p.matcher("nick");//錯誤 只能是中文
b = m.matches();
System.out.println("中文名錯誤:"+b); //輸出:false
}
3、郵件地址格式檢測:
public void checkEmail(){
Pattern p = null; //正則表達式
Matcher m = null; //操作的字符串
boolean b = false;
//正則表達式表示郵箱號碼
p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
m = p.matcher("[email protected]");
b = m.matches();
System.out.println("email號碼正確:"+b); //輸出:true
//
p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
m = p.matcher("user.test.com");//錯誤 @應爲.
b = m.matches();
System.out.println("email號碼錯誤:"+b); //輸出:false
}
一個好的正則表達式的編寫也是有難度的,編寫之前必須要屬性正則表達式的各個符號所代表的意思,如果需要對匹配進程操作,如:替換,截取,
獲取固定位,則需要熟悉Matcher類中各個方法,使用正則表達式有時候會比用代碼實現更加簡潔高效,但是正則表達式沒有經過嚴格測試也容易引
入bug,總之正則表達式很容易入門,但是一個好的正則表達式編寫員也是很難練成的。