正则表达式
正则表达式是描述一种字符串匹配的模式,可以用来检查一个串是否含有某种子串,由普通字符和特殊字符组成。
1.普通字符
普通字符:包含所有的大写,小写,所有数字,所有标点和一些其他字符。
- [ABC] :匹配集合中的ABC所有字符。
- [^ABC]: 匹配除了集合中的ABC所有字符。
- [A-Z] :表示一个区间,匹配所有的大写字母。
- ‘.‘:匹配除了换行符(/n,/r)之外的所有字符,相当于[^\r\n]。
- [\s\S]:匹配所有。\s:匹配所有空白符,包括换行;\S:非空白符。
- [\w]:匹配字母,数字和下划线。等价于[A-Za-z0-9_]
2.非打印字符
字符 | 描述 |
---|
\cx | 匹配有x指名的控制字符。\cI 匹配 control + I,等价于 \t; \cJ匹配 control + J,等价于 \n, |
\f | 匹配一个换页符 |
\n | 匹配一个换行符 |
\r | 匹配一个回车符 |
\s | 匹配所有的空白符,等价于[\f\n\r\t\v] |
\S | 匹配任何非空白符,等价于“[^\f\n\r\t\v]” |
\t | 匹配一个制表符 |
\v | 匹配一个垂直制表符 |
3.特殊字符
所谓特殊字符,就是一些有特殊含义的字符 。
特殊字符 | 描述 |
---|
$ | 匹配输入字符串的结束位置。 |
() | 匹配一个字表达式开始和结束的位置 |
* | 匹配前面的子表达式零次或多次 |
+ | 匹配前面的子表达一次或多次 |
. | 匹配除了换行\n之外的所有字符 |
[ | 中括号表达式开始的位置 |
? | 匹配前面的子表达式一次或零次 |
\ | 将下一个字符转换为特殊字符,既转义字符 |
^ | 匹配输入字符串的开始位置 |
{ | 标记限定符表达式的开始 |
| | 指明两项之间的一个选择 |
4.限定符
字符 | 描述 |
---|
* | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。等价于{0,} |
+ | 匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。等价于{1,} |
? | 匹配前面的子表达式零次或一次。例如,“do(es)?” 可以匹配 “do” 、 “does” 中的 “does” 、 “doxy” 中的 “do” 。 |
{n} | n是一个非负数,需要匹配n次。 |
{n,} | n是一个非负数,至少匹配n次。 |
{n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。 |
5.定位符
^ | 匹配输入字符的开始位置 |
---|
$ | 匹配输入字符的结束位置 |
\b | 匹配一个单词边界 |
\B | 非单词边界 |