Java常用API—正则表达式

一、引言

什么是正则表达式:可以使用单个字符串表示的规则。最通用的正则表达式校验电子邮箱的字符串为:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$,而电子邮箱也是一个字符串,从而实现一个字符串对另一个字符串的匹配校验。在实际开发中,正则表达式通常被用来检查某些字符串是否合规,例如:用户名、密码、手机号……。


二、正则表达式的语法规则

1.    API文档中:java.util.regex.Pattern      实现的接口:Serializable

2.    正则表达式区分大小写字母。

3.    字符与其含义

字符

含义

例子

x

字符x

“a”,需要匹配的字符串内容就是“a”

\

转义字符

“\t” 制表符, “\n” 换行符 ,

“\r” 回车符,“\\” 反斜杠\

[abc]

字符a|b|c其中一个

“a”

[^abc]

上面取反

“t”

[a-zA-Z]

一个大写或小写字母

“a”

[0-9]

一个数字

“0”

[a-zA-Z_0-9]

一个字母或数字或“_”

“9”

\d

预定义字符类 [0-9]

“0”

\w

预定义字符类

[a-zA-z_0-9]

“y”

^

行的开头

^[abc][0-9]$ 需要匹配的内容从[abc]这个位置开始

$

行的结尾

需要匹配的内容以[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{3}”字符a出现3次

x{n,}

x至少出现n次

“a{3,}”字符a至少出现3次

x{n,m}

x至少出现n次,但不超过m次

“a{3,6}”字符a至少出现3次,但不超过6次


三、正则表达式规则匹配练习

1.    [0-9]{6,12}       长度为6位到12位的数字

2.    1[34578][0-9]{9}      第1位为1,第2位为3或4或5或7或8,后面还有9个数字

3.    a*b   多个a后面跟着b结尾,或者a没出现以b结尾    “aaab”true “abc”false


四、String类中设计正则表达式的常用方法

1.    boolean matches(String regex)    告知此字符串是否匹配给定的正则表达式

2.    String split(Stringregex)       根据给定正则表达式的匹配拆分此字符串,拆分后放在String[]数组中

3.    String replaceAll(String regex,Stringreplacement)使用给定replacement替换此字符串所有匹配给定的正则表达式的子字符串

Demo:

Java常用API—正则表达式_第1张图片

结果:

五、数字相关正则表达式

1.    匹配正整数:“\\d+”

2.    匹配正小数:“\\d+\\.\\d+”

3.    匹配负整数:“-\\d+”

4.    匹配负小数:“-\\d+\\.\\d+”

5.    匹配保留两位小数的正数:“\\d+\\.\\d{2}“

9.    匹配保留1-3位小数的正数:“\\d+\\.\\d{1,3}“

你可能感兴趣的:(Java基础)