5.3 正则表达式
特殊字符 | 意义 |
---|---|
. | 任意的一个字符(不包括改行符) |
* | 将该字符前的字符串重复0回以上 |
+ | 将该字符前的字符串重复1回以上 |
? | 将该字符前的字符串重复0~1回 |
^ | 行的开头 |
$ | 行的末尾 |
| | 选择 |
() | 正则表达式的组 |
[] | 字符的类 |
{n} | 重复n回 |
{n,} | 重复n回以上 |
{n,m} | 重复n回以上m回以下 |
将特殊字符作为字符使用 |
5.3.1 行定位符
行定位符用来描述字符串的边界,"^"表示行的开始,"$"表示行的结尾。
^
$
^tm # 以tm开头的字符串
tm$ # 以tm结尾的字符串
tm # 包含tm的字符串
5.3.2 元字符
.
w
W
s
S
d
. #表示任意的一个字符
N.T NOT NET N T
5.3.3 限字符
?
+
*
{n}
{n,}
{n,m}
* # 将该字符前的一个字符重复0回以上
mo* m mo moo
+ # 将该字符之前的一个字符重复1回以上
mo+ mo moo
? # 将该字符之前的一个字符重复0回或者1回
https? http https
{4} # 将该字符之前的一个字符重复4回
s.{4}ing sleeping swimming shopping
{3,4} # 将该字符之前的一个字符重复3回以上4回以下
s.{3,4}ing sleeping smiling singing
5.3.4 字符类
将多个字符收集到一起的东西被称之为字符类。用中括号[]括住,可以将括在其中的某一文字显示出来。
[02468] # 02468中的某一个数字
[1359] # 1359中的某一个数字
[^024] # 除024以外的某一个数字
[0123456789] == [0-9] # 从0到9中某一个数字
(ab)+b # 将ab绑在一起了,视作一组
5.3.5 排除字符
# ^放在[]方括号中,表示排除的意思
[^a-zA-Z] 除大小写字母以外的字符
5.3.6 选择字符
| # 或的意思
匹配身份证的表达式
(^d{15}$)|(^d{18}$)|(^d{17})(d|X|x)$
5.3.7 转义字符
# 反斜杠
匹配127.0.0.1这个IP地址
[1-9{1,3}.[0-9]{1,3}.[0-9]{1,3}]