一、应用场景

在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);    // 把str中的所有a子串换成b
str.replaceFirst(a, b);    // 把str中的第一个a子串换成b
str.split(a);               // 以a字符串作为分割分割str字符串,并返回被分割的字符串组

//以上的a字符串都可以用正则表达式表示