一.匹配字符
(1)格式
- . 匹配任意单个字符,不能匹配空行
- [ ]匹配指定范围内的任意单个字符
- [^]取反
- [:alnum:]或[0-9a-zA-Z]
- [:alpha:]或[a-zA-Z]
- [:upper:]或[A-Z]
- [:lower:]或[a-z]
- [:blank:]空白字符(空格和制表符)
- [:space:]水平和垂直的空白字符(比[:blank:]包含的范围广)
- [:cntrl:]不可打印的控制字符(退格、删除、警铃....)
- [:digit:]十进制数字或[0-9]
- [:xdigit:]十六进制数字
- [:graph:]可打印的非空白字符
- [:print:]可打印字符
- [:punct:]标点符号
(2)演示
二、匹配次数
(1)格式
* | 匹配前面的字符任意次,包括0次。贪婪模式:尽可能长的匹配 |
.* | 任意前面长度的任意字符,不包括0次 |
\? | 匹配其前面的字符0或者1次 |
+ | 匹配其前面的字符至少1次 |
{n} | 匹配前面的字符n次 |
{m,n} | 匹配前面的字符至少m次,至多n次 |
{,n} | 匹配前面的字符至多n次 |
{n,} | 匹配前面的字符至少n次 |
(2)演示
三、位置锚定:定位出现的位置
(1)格式
^ | 行首锚定,用于模式的最左侧 |
$ | 行尾锚定,用于模式的最右侧 |
^PATTERN$ | 用于模式匹配整行 |
^$ | 空行 |
^[[:space:]].*$ | 空白行 |
<或\b | 词首锚定,用于单词模式的左侧 |
>或\b | 词尾锚定,用于单词模式的右侧 |
(2)演示
四、分组和后向引用
(1)格式
分组:()将一个或多个字符捆绑在一起,当做一个整体进行处理
后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本身
\1 | 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符 |
\2 | 表示从左侧起第2个左括号以及与之匹配右括号之间的模式所匹配到的字符,以此类推 |
& | 表示前面的分组中所有字符 |
流程分析:
(2)演示