JAVA中正則表示式的應用
阿新 • • 發佈:2022-03-29
一、應用場景
我們可以用正則表示式來實現匹配,替換或拆分字串
二、正則表示式的常見用法
1、指定字元
正則表示式 | 待驗證字串 | T or F |
---|---|---|
Java | Java | True |
Java | Jave | False |
2、. 任意單個字元(換行除外)
正則表示式 | 待驗證字串 | T or F |
---|---|---|
Jav. | Java | True |
Jav.. | Java | False |
3、 | 為或 -> 例如(ab|cd) 表示ab或cd
正則表示式 | 待驗證字串 | T or F |
---|---|---|
Ja(va|ve) | Java | True |
Ja(vb|ve) | Java | False |
4、[ ] 表示匹配中括號內任意一個字元
正則表示式 | 待驗證字串 | T or F |
---|---|---|
Jav[abcde] | Java | True |
Jav[bcdef] | Java | False |
5、 [ ^abc] 表示匹配除了^以後的字元
正則表示式 | 待驗證字串 | T or F |
---|---|---|
Jav[ ^def] | Java | True |
Jav[ ^abc] | Java | False |
6、 [a-z] 表示匹配字元‘a’ 到字元‘z’ 之間的字元(包括頭尾)
正則表示式 | 待驗證字串 | T or F |
---|---|---|
Jav[a-z] | Java | True |
Jav[b-z] |
Java | False |
7、 [ ^a-z] 表示匹配字元‘a’ 到字元‘z’ 以外的字元(包括頭尾)
正則表示式 | 待驗證字串 | T or F |
---|---|---|
Jav[ ^b-z] | Java | True |
Jav[ ^a-z] | Java | False |
8、[a-d[x-z]] 表示匹配'a'到'd'或者'x'到'z'的字元
正則表示式 | 待驗證字串 | T or F |
---|---|---|
Ja[a-v[x-z]]a | Java | True |
Ja[a-u[x-z]]a | Java | False |
Ja[a-c[v-z]]a | Java | True |
9、 [a-y&&[x-z]] 表示字元‘a’到字元'y'和字元'x'到字元'z'之間的交集
正則表示式 | 待驗證字串 | T or F |
---|---|---|
Ja[a-v&&[u-z]]a | Java | True |
Ja[a-v&&[u-z]]a | Jaua | True |
Ja[a-y&&[x-z]]a | Java | False |
10、\d 匹配一位數字,\D 匹配一位非數字
正則表示式 | 待驗證字串 | T or F |
---|---|---|
hello\d\d | hello12 | True |
hello\d\d | hello1a | False |
hello\d\D | hello1a | True |
hello\d | hello12 | False |
11、 \w 匹配一位數字、字母、下劃線, \W 匹配非\w
正則表示式 | 待驗證字串 | T or F |
---|---|---|
hello\w\w | hello12 | True |
hello\w\w | hello1a | True |
hello\w\w | hello_a | True |
hello\w\w\w | hello_1a | True |
12、 \s 匹配空白字元(' ','\n','\t','\r','\f'), \S匹配非空字元
正則表示式 | 待驗證字串 | T or F |
---|---|---|
hello\s00 | hello 00 | True |
13、p* 匹配0次或多次出現模式p, p+ 匹配1次或多次出現模式p,p? 匹配0次或一次出現p模式
正則表示式 | 待驗證字串 | T or F |
---|---|---|
aaab* | aaa | True |
aaab* | aaabbbb | True |
aaab+ | aaa | False |
aaab+ | aaabbbb | True |
aaab? | aaa | True |
aaab? | aaab | True |
aaab? | aaabb | False |
14、p{n} 匹配正好出現n次p, p{n,} 匹配至少出現n次p,p{,m} 至多出現m次p; p{n,m} n到m次(至少n、至多m)出現p
正則表示式 | 待驗證字串 | T or F |
---|---|---|
aaab{2} | aaab | False |
aaab{2} | aaabb | True |
aaab{2} | aaabbb | False |
aaab{2,} | aaabb | True |
aaab{2,} | aaabbb | True |
aaab{,2} | aaabb | True |
aaab{,2} | aaabbb | False |
aaab{2,3} | aaabb | True |
aaab{2,3} | aaabbb | True |
aaab{2,3} | aaabbbb | False |
15、\p{P} 匹配標點字元(特殊字元)
正則表示式 | 待驗證字串 | T or F |
---|---|---|
hello world\p{P} | hello world! | True |
hello world\p{P} | hello world1 | False |
三、正則表示式注意事項
1、遇到\d,\D,\s 等 要注意使用轉義字元”\\“來轉義"\".
2、使用格式應為 待驗證字串.matches("正則表示式").
3、任何字串都能與”.*“ 匹配成功.
四、替換拆分字串
介紹幾個方法
str.replaceAll(a, b); // 把str中的所有a子串換成b
str.replaceFirst(a, b); // 把str中的第一個a子串換成b
str.split(a); // 以a字串作為分割分割str字串,並返回被分割的字串組
//以上的a字串都可以用正則表示式表示