一、应用场景
在Java中,当我们想要验证用户输入是否符合规范时,可以选择正则表达式
我们可以用正则表达式来实现匹配,替换或拆分字符串
二、正则表达式的常见用法
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);