1.基本介绍
正则表达式(re, Regular Expression)
描述了一种字符串匹配模式,可以用来检查一个字符串是否含有某个子串,并将匹配的子串替换或从某个字符串中取出符合某条件的子串。
正则表达式就是我们提出的条件:
我说:给我个水果!!
他给我一个苹果,可不可以?当然可以啊,因为水果包含苹果
那如果他给我一头蒜,可以吗?当然不行!
那么这个例子里的水果”就是我们所说的条件!
正则表达式也就是为了匹配与我们条件相符的字符串!
进入正题:
2.字符类
| 字符 | 含义 |
|---|---|
| \f | 匹配一个换页符 |
| \n | 匹配一个换行符 |
| \r | 匹配一个回车符 |
| \t | 匹配一个制表符 |
| \v | 匹配一个垂直制表符 |
| \s | 匹配一个任何空白字符,包括:空格、制表符 etc. |
| \S | 匹配一个任何非空白字符 |
| \w | 匹配一个数字、字母、及下划线,等同于[a-zA-Z0-9_] |
| \W | 匹配一个非数字字母下划线 |
| \d | 匹配一个数字字符,等同于[0-9] |
| \D | 匹配一个非数字字符 |
| . | 匹配一个除换行符以外的任何单字符 |
3.限定符
用来指定正则表达式的一个给定条件必须出现多少次才能满足匹配,即前面的表达式需要出现的次数
| 字符 | 含义 |
|---|---|
| * | 匹配前面的子表达式零次或多次,等同于{0,} |
| + | 匹配前面的子表达式一次或多次,等同于{1,} |
| ? | 匹配前面的子表达式零次或一次,等同于{0,1} |
| {n} | n为非负整数,意味着匹配前面的子表达式n次 |
| {n,} | n为非负整数,意味着至少匹配前面的子表达式n次 |
| {n,m} | n为非负整数,意味着最少匹配前面的子表达式n次,最多m次 |
4.定位符
将正则表达式固定在特殊位置,即,从哪开始匹配,到哪匹配结束!
| 字符 | 含义 |
|---|---|
| ^ | 匹配前面的子表达式零次或多次,等同于{0,} |
| $ | 匹配前面的子表达式一次或多次,等同于{1,} |
| \b | 匹配前面的子表达式零次或一次,等同于{0,1} |
| \B | n为非负整数,意味着匹配前面的子表达式n次 |
5.特殊符号
| 字符 | 含义 |
|---|---|
| () | 标记一个子表达式的起止位置 |
| [] | 匹配[]内的任意单字符或子表达式 |
| \ | 将下一个字符标记为特殊字符 |
| | | 匹配该符号左右两侧之一的字符或表达式 |
6.举例
说了再多,不如举个栗子直观: