正则表达式提供一种匹配字符串的模式,用来检查一个串中是否包含某种子串,以及将匹配到的字符串取出来做相应的处理。
正则表达式构成
| 普通字符(包括打印和不可打印字符) | 没有显示指定为元字符的字符 包括 大小写字母 、数字 、 标点符号等 |
|---|---|
| 特殊字符(元字符) | 这些表示特定意义的字符,如果需要原样输出需要转义 在前面加反斜线 \ |
| 限定符 | 指定正则表达式的一个给定组件必须要出现多少次才能满足匹配 |
| 定位符 | 将表达式固定到行首或行尾 用于描述字符串的边界 |
打印字符
| 字符 | 描述 |
|---|---|
| \f | 匹配一个换页符 |
| \n | 匹配一个换行符 |
| \r | 匹配一个回车符 |
| \s | 匹配空白字符,包括空格、制表符、换页符,等价于[\r\n\t\v\f] |
| \S | 匹配任何非空字符.等价于[^\r\n\f\t\v] |
| \t | 匹配一个制表符 |
| \v | 匹配一个垂直制表符 |
特殊字符
| 字符 | 描述 |
|---|---|
| $ | 匹配字符串的结尾位置 |
| () | 标记一个子表达式的开始和结束位置,子表达式可以获取后使用 |
| * | 匹配前面的子表达式零次或多次 等价于{0,} |
| + | 匹配前面的子表达式一次或多次 等价于{1,} |
| ? | 匹配前面的子表达式零次或一次,或指定一个非贪婪限定符 等价于{0,1} |
| \ | 将下一个特殊字符进行转义 原样匹配 |
| ^ | 匹配字符串的开始位置,在方括号表达式中使用表示对该集合取反 |
| . | 点号 匹配除换行符之外的任何单字符 |
| [ | 标记一个中括号表达式的开始 |
| { | 标记限定符表达式的开始 |
| | | 指定两项之间的一个选择 即出现其中一项即可 |
限定符
| 字符 | 描述 |
|---|---|
| {n} | 明确子表达式恰好匹配n次 |
| {n,} | 子表达式至少匹配n次 |
| {n,m} | 子表达式匹配n到m次之间都可以 |
定位符
| 字符 | 描述 |
|---|---|
| ^ | 匹配输入字符串开始的位置 |
| $ | 匹配输入字符串结尾的位置 |
| \b | 匹配一个单词边界,即字与空格间的位置。 |
| \B | 非单词边界匹配 |