|名詞定義|
正規表達式(Regular Expression,常簡寫為regex、regexp或RE),又稱正則表示式、正則表示法、規則表達式、正常表示法,是計算機科學的一個概念。正規表達式使用單個字元串來描述、比對一系列符合某個句法規則的字元串。在很多文本編輯器裡,正規表達式通常被用來檢索、替換那些符合某個模式的文本。
正規表達式最早是從Perl語言中發展而來的,而後在JDK 1.4以前需要使用到正規表達式的相關定義則需要單獨引入其他的*.jar檔案,但是從JDK1.4後,正則已經預設被JDK所支援,并提供有java.util.regex開發包,同時針對于String 類也增加了對于正則的驗證方法。
|常用正則标記Pattern類|
從JDK1.4開始提供java.util.regex開發包,這個包中提供有一個Pattern類,在這個類中定義有所有支援的正則标記。
1、 【數量:單個】字元比對
- 任意字元:表示由任意字元組成;
- \\:比對 “\”;
- \n:比對換行;
- \t:比對制表符;
2、【數量:單個】字元集(可以從裡面任選一個字元)
- [abc]:表示可能是字母a、b、c中的任意一個;
- [^abc]:表示不是由字母a、b、c中的任意一個;
- [a-zA-Z]:表示由一個任意的字母所組成,不區分大小寫;
- [0-9]:表示由一位數字所組成;
3、【數量:單個】台灣字元集
- .:表示任意的一個字元;
- \d:等價于“[0-9]”範圍;
- \D:等價于“[^0-9]”範圍;
- \s:比對任意一位空格,可能是空格、換行、制表符;
- \S:比對任意的非空格資料;
- \w:比對字母、數字、下劃線,等價于“[a-zA-Z_0-9]”;
- \W:比對非字母、數字、下劃線,等價于“[^a-zA-Z_0-9]”;
4、邊界比對:
- ^:比對邊界開始;
- $:比對邊界結束;
5、數量表達,預設情況下隻有添加上了數量機關才可以比對多位字元;
- 表達式?:該正則可以出現0次或1次;
- 表達式*:該正則可以出現0次、1次或多次;
- 表達式+:該正則可以出現1次或多次;
- 表達式{n}:表達式的長度正好為n次;
- 表達式{n,}:表達式的長度為n次以上;
- 表達式{n,m}:表達式的長度在n~m次;
6、邏輯表達式:可以連接配接多個正則:
- 表達式X表達式Y:X表達式之後緊跟上Y表達式;
- 表達式X|表達式Y:有一個表達式滿足即可;
- (表達式):為表達式設定一個整體描述,可以為整體描述設定數量機關;
|String類對正則的支援|
在String中提供有如下與正則有關的操作方法:
1.将指定字元串進行正則判斷:public boolean matches(String regex);
2.替換全部:public String replaceAll(String regex, String replacement);
3.替換首個:public String replaceFirst(String regex, String replacement);
4.正則拆分:public String[] split(String regex);
5.正則指定個數拆分:public String[] split(String regex, int limit);
使用正則的最大特點在于友善進行驗證處理,以及友善進行複雜字元串的修改處理。
|參考資料|
[1] 阿裡雲大學Java視訊課程
[2] Java開發者
[3] 維基百科