1. 程式人生 > >Java正則表示式匹配規則

Java正則表示式匹配規則

1.1 正則表示式的概念

正則表示式(英語:Regular Expression,在程式碼中常簡寫為regex

正則表示式是一個字串,使用單個字元串來描述、用來定義匹配規則,匹配一系列符合某個句法規則的字串。在開發中,正則表示式通常被用來檢索、替換那些符合某個規則的文字。

1.1 正則表示式的匹配規則

參照幫助文件,在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之間