正则表达式提供一种匹配字符串的模式,用来检查一个串中是否包含某种子串,以及将匹配到的字符串取出来做相应的处理。
正则表达式构成
普通字符(包括打印和不可打印字符) | 没有显示指定为元字符的字符 包括 大小写字母 、数字 、 标点符号等 |
---|---|
特殊字符(元字符) | 这些表示特定意义的字符,如果需要原样输出需要转义 在前面加反斜线 \ |
限定符 | 指定正则表达式的一个给定组件必须要出现多少次才能满足匹配 |
定位符 | 将表达式固定到行首或行尾 用于描述字符串的边界 |
打印字符
字符 | 描述 |
---|---|
\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 | 非单词边界匹配 |