Java正則表示式匹配規則
1.1 正則表示式的概念
正則表示式(英語:Regular Expression,在程式碼中常簡寫為regex)。
正則表示式是一個字串,使用單個字元串來描述、用來定義匹配規則,匹配一系列符合某個句法規則的字串。在開發中,正則表示式通常被用來檢索、替換那些符合某個規則的文字。
1.1 正則表示式的匹配規則
參照幫助文件,在Pattern類中有正則表示式的的規則定義,正則表示式中明確區分大小寫字母。我們來學習語法規則。
正則表示式的語法規則:
字元:x
含義:代表的是字元x
例如:匹配規則為 "a",那麼需要匹配的字串內容就是 ”a”
字元:\\
含義:代表的是反斜線字元'\'
例如:匹配規則為
字元:\t
含義:製表符
例如:匹配規則為"\t" ,那麼對應的效果就是產生一個製表符的空間
字元:\n
含義:換行符
例如:匹配規則為"\n",那麼對應的效果就是換行,游標在原有位置的下一行
字元:\r
含義:回車符
例如:匹配規則為"\r" ,那麼對應的效果就是回車後的效果,游標來到下一行行首
字元類:[abc]
含義:代表的是字元a、b 或 c
例如:匹配規則為"[abc]" ,那麼需要匹配的內容就是字元a,或者字元b,或字元c的一個
字元類:[^abc]
含義:代表的是除了 a、b 或 c以外的任何字元
例如:匹配規則為"[^abc]"
字元類:[a-zA-Z]
含義:代表的是a 到 z 或 A 到 Z,兩頭的字母包括在內
例如:匹配規則為"[a-zA-Z]",那麼需要匹配的是一個大寫或者小寫字母
字元類:[0-9]
含義:代表的是 0到9數字,兩頭的數字包括在內
例如:匹配規則為"[0-9]",那麼需要匹配的是一個數字
字元類:[a-zA-Z_0-9]
含義:代表的字母或者數字或者下劃線(即單詞字元)
例如:匹配規則為" [a-zA-Z_0-9] ",那麼需要匹配的是一個字母或者是一個數字或一個下滑線
預定義字元類:.
含義:代表的是任何字元
例如:匹配規則為
預定義字元類:\d
含義:代表的是 0到9數字,兩頭的數字包括在內,相當於[0-9]
例如:匹配規則為"\d ",那麼需要匹配的是一個數字
預定義字元類:\w
含義:代表的字母或者數字或者下劃線(即單詞字元),相當於[a-zA-Z_0-9]
例如:匹配規則為"\w ",,那麼需要匹配的是一個字母或者是一個數字或一個下滑線
邊界匹配器:^
含義:代表的是行的開頭
例如:匹配規則為^[abc][0-9]$ ,那麼需要匹配的內容從[abc]這個位置開始, 相當於左雙引號
邊界匹配器:$
含義:代表的是行的結尾
例如:匹配規則為^[abc][0-9]$ ,那麼需要匹配的內容以[0-9]這個結束, 相當於右雙引號
邊界匹配器:\b
含義:代表的是單詞邊界
例如:匹配規則為"\b[abc]\b" ,那麼代表的是字母a或b或c的左右兩邊需要的是非單詞字元([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之間