通配符和正则表达式
二者的区别
通配符:用于匹配文件名
正则表达式:用于匹配文件内容
正则表达式
元字符
| 字符选项 | 含义 |
|---|---|
| . | 匹配任意单个字符,可以是一个汉字 |
| [ …] | 匹配指定范围内的任意单个字符 |
| [^ …] | 匹配指定范围外的任意单个字符 |
| 1 | 匹配以…开头的字符串 |
/. = [ . ]
| 匹配符 | 含义 |
|---|---|
| [:alnum:] | 字母和数字 |
| [:alpha:] | 代表任何英文大小写字符,亦即 A-Z, a-z |
| [:lower:] | 小写字母,示例:[[:lower:]],相当于[a-z] |
| [:upper:] | 大写字母 |
| [:blank:] | 空白字符(空格和制表符) |
| [:space:] | 包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白,比[:blank:]包含的范围广 |
| [:cntrl:] | 不可打印的控制字符(退格、删除、警铃…) |
| [:digit:] | 十进制数字 |
| [:xdigit:] | 十六进制数字 |
| [:graph:] | 可打印的非空白字符 |
| [:print:] | 可打印字符 |
| [:punct:] | 标点符号 |
\w #匹配单词构成部分,等价于[_[:alnum:]]
\W #匹配非单词构成部分,等价于[^_[:alnum:]]
\S #匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\s #匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
表示次数
字符选项 含义
- 匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配 .* 任意长度的任意字符,不包括0次 ? 匹配其前面的字符出现0次或1次,即:可有可无
- 匹配其前面的字符出现最少1次,即:肯定有且 >=1 次 {n} 匹配前面的字符n次 {m,n} 匹配前面的字符至少m次,至多n次 {,n} 匹配前面的字符至多n次,<=n {n,} 匹配前面的字符至少n次
位置锚定
| 字符选项 | 含义 |
|---|---|
| ^ | 行首锚定, 用于模式的最左侧 |
| $ | 行尾锚定,用于模式的最右侧 |
| ^PATTERN$ | 用于模式匹配整行 (单独一行 只有root) |
| ^$ | 空行 |
| 2*$ | 空白行 |
\< 或 \b #词首锚定,用于单词模式的左侧(连续的数字,字母,下划线都算单词内部)
\> 或 \b #词尾锚定,用于单词模式的右侧
\<PATTERN\> #匹配整个单词