正則表達式

        正則表達式(在代碼中常簡寫爲regex)        正則表達式是一個字符串,使用單個字符串來描述、用來定義匹配規則,匹配一系列符合某個句法規則的字符串。開發中,正則表達式通常用來檢索、替換那些符合某個規則的文本。

        正則表達式的匹配規則    在Pattern類中有正則表達式的規則定義,正則表達式中明確區分大小寫字母。

        正則表達式的語法規則:

字符:x

含義:代表的是字符x

例如:匹配規則爲 "a",那麼需要匹配的字符串內容就是 ”a”

字符:\\

含義:代表的是反斜線字符'\'

例如:匹配規則爲"\\" 那麼需要匹配的字符串內容就是 ”\”

字符:\t

含義:製表符

例如:匹配規則爲"\t" ,那麼對應的效果就是產生一個製表符的空間

字符:\n

含義:換行符

例如:匹配規則爲"\n",那麼對應的效果就是換行,光標在原有位置的下一行

字符:\r

含義:回車符

例如:匹配規則爲"\r" ,那麼對應的效果就是回車後的效果,光標來到下一行行首

字符類:[abc]

含義:代表的是字符ab c

例如:匹配規則爲"[abc]" ,那麼需要匹配的內容就是字符a,或者字符b,或字符c的一個

字符類:[^abc]

含義:代表的是除了 ab c以外的任何字符

例如:匹配規則爲"[^abc]",那麼需要匹配的內容就是不是字符a,或者不是字符b,或不是字符c的任意一個字符

字符類:[a-zA-Z]

含義:代表的是a z A Z,兩頭的字母包括在內

例如:匹配規則爲"[a-zA-Z]",那麼需要匹配的是一個大寫或者小寫字母

字符類:[0-9]

含義:代表的是 09數字,兩頭的數字包括在內

例如:匹配規則爲"[0-9]",那麼需要匹配的是一個數字

字符類:[a-zA-Z_0-9]

含義:代表的字母或者數字或者下劃線(即單詞字符)

例如:匹配規則爲" [a-zA-Z_0-9] ",那麼需要匹配的是一個字母或者是一個數字或一個下滑線

預定義字符類:.

含義:代表的是任何字符

例如:匹配規則爲" . ",那麼需要匹配的是一個任意字符。如果,就想使用 . 的話,使用匹配規則"\\."來實現

預定義字符類:\d

含義:代表的是 09數字,兩頭的數字包括在內,相當於[0-9]

例如:匹配規則爲"\d ",那麼需要匹配的是一個數字

預定義字符類:\w

含義:代表的字母或者數字或者下劃線(即單詞字符),相當於[a-zA-Z_0-9]

例如:匹配規則爲"\w ",,那麼需要匹配的是一個字母或者是一個數字或一個下滑線

邊界匹配器:^

含義:代表的是行的開頭

例如:匹配規則爲^[abc][0-9]$ ,那麼需要匹配的內容從[abc]這個位置開始, 相當於左雙引號

邊界匹配器:$

含義:代表的是行的結尾

例如:匹配規則爲^[abc][0-9]$ ,那麼需要匹配的內容以[0-9]這個結束, 相當於右雙引號

邊界匹配器:\b

含義:代表的是單詞邊界

例如:匹配規則爲"\b[abc]\b" ,那麼代表的是字母abc的左右兩邊需要的是非單詞字符([a-zA-Z_0-9])

數量詞:X?

含義:代表的是X出現一次或一次也沒有

例如:匹配規則爲"a?",那麼需要匹配的內容是一個字符a,或者一個a都沒有

數量詞:X*

含義:代表的是X出現零次或多次

例如:匹配規則爲"a*" ,那麼需要匹配的內容是多個字符a,或者一個a都沒有

數量詞:X+

含義:代表的是X出現一次或多次

例如:匹配規則爲"a+",那麼需要匹配的內容是多個字符a,或者一個a

數量詞:X{n}

含義:代表的是X出現恰好 n

例如:匹配規則爲"a{5}",那麼需要匹配的內容是5個字符a

數量詞:X{n,}

含義:代表的是X出現至少 n

例如:匹配規則爲"a{5, }",那麼需要匹配的內容是最少有5個字符a

數量詞:X{n,m}

含義:代表的是X出現至少 n 次,但是不超過 m

例如:匹配規則爲"a{5,8}",那麼需要匹配的內容是有5個字符a 8個字符a之間

字符串類中涉及正則表達式的常用方法


  • public boolean matches(String regex) //判斷字符串是否匹配給定的規則

/*
*舉例:校驗qq號碼.
*	1: 要求必須是5-15位數字
*	2: 0不能開頭
*代碼演示:
*/
	String qq = "604154942";
	String regex = "[1-9][0-9]{4,14}";
	boolean flag2 = qq.matches(regex);
/*
*舉例:校驗手機號碼
* 1:要求爲11位數字
* 2:第1位爲1,第2位爲3、4、5、7、8中的一個,後面9位爲0到9之間的任意數字。
*代碼演示:
*/
	String phone = "18800022116";
	String regex = "1[34578][0-9]{9}";
	boolean flag = phone.matches(regex);
  • l public String[] split(String regex)  //根據給定正則表達式的匹配規則,拆分此字符串
/*
*舉例:分割出字符串中的的數字
*代碼演示:
*/
String s = "18-22-40-65";
	String regex = "-";
	String[] result = s.split(regex);
//代碼演示:
	String s = "18 22 40 65";
	String regex = " ";
	String[] result = s.split(regex);
  • l public String replaceAll(String regex,String replacement) //將符合規則的字符串內容,全部替換爲新字符串
/*
*舉例:把文字中的數字替換成*
*代碼演示:
*/
	String s = "Hello12345World6789012";
	String regex = "[0-9]";
	String result = s.replaceAll(regex, "*");

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