正則表達式學習與應用及JAVA中相關函數

首先po出最簡單的規則:

規則字符在java.util.regex Pattern類中
1:字符
   x 字符x
   \\ 反斜線字符
   \n 換行符
   \r 回車符
   
2:字符類
   [abc] a、b 或 c
   [^abc] 任何字符,除了 a、b 或 c
   [a-zA-Z] a到 z或 A到 Z,兩頭的字母包括在內 
   [0-9] 包括數字字符0-9
   
3:預定義字符類
   . 任何字符
   \d 數字:[0-9]
   \w 單詞字符:[a-zA-Z_0-9]
   
4:邊界匹配器
   ^ 行的開頭 
   $ 行的結尾 
   \b 單詞邊界(不能是單詞字符)
      hello?hao are you.
      
5.數量詞
X? X,一次或一次也沒有 
X* X,零次或多次 
X+ X,一次或多次 
X{n} X,恰好 n 次 
X{n,} X,至少 n 次 
X{n,m} X,至少 n 次,但是不超過 m 次 

例子:

[1-9][0-9]{4,14} //QQ號碼正則表達

表示第一位取值範圍爲1-9,後面是長度爲4-14的取值爲0-9的數字字符串。

1[38][0-9]{9} //13或18開頭的手機號表達

表示第一位爲1,第二位爲3或8,後面是長度爲9的取值爲0-9的數字字符串。

\\w+@\\w{2,8}(\\.[a-z]{2,3})+ //郵箱地址表示方式

前面任意位爲單詞字符(包含數字)中間加@後面是長度爲2-8的單詞字符(包含數字)再加上.後面跟着2-3位的a-z的字母字符。

\\d+

表示後面出現的數字串,直到後面出現非數字爲止。

還可以應用一些邏輯運算符如&|等等。

具體的正則表達式學習可以去此Blog,非常詳細:http://www.runoob.com/regexp/regexp-example.html

http://blog.csdn.net/u010552788/article/details/51019367




除此之外還有一些日常和正則表達式配套使用的一些java中的常用方法如:

對正則表達式進行匹配的Matches():

public boolean matches(String regex);

boolean flag  =  String1.matches(regex);

根據正則表達式對String進行分割的split();

public String[] split(String regex);

String s1 = "aa,bb,cc";
String regex1 = ",";
String[] strArray1 = s1.split(regex1);
for (int x = 0; x < strArray1.length; x++) {
   System.out.println(strArray1[x]);
}

輸出結果爲:

aa

bb

cc

String.split("要切割的準側")返回的是一個String[ ]的首地址;String.split("要切割的準側").length 返回的是這個String被切割後的子字符串的個數(及被切割成了幾個段);String.split(""),此時,切割後的第一個段是空字符串。

根據正則表達式對String中符合條件的進行替換的replaceAll();

public String replaceAll(String regex, String replacement);

String s = "hello62212934564347892xiexie13212345678go";
String ss = s.replaceAll("\\d+", "***");

輸出結果爲:

hello***xiexie***go


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