0x00 Globbing 语法
man glob
里面很好的解释 Globbing 的历史,通常在文件匹配时会使用 Globbing ,因为这个语法规则已经作为类 Unix Shell 的 Built-in 存在。
字符 | 解释 |
---|
* | 匹配任意长度任意字符 |
? | 匹配任意单个字符 |
[] | 匹配指定范围内任意单个字符,也可以是单个字符组成的集合 |
[^] | 匹配指定范围外的任意单个字符或字符集合 |
[!] | 同[^] |
{str1,str2,…} | 匹配 srt1 或者 srt2 或者更多字符串,也可以是集合 |
0x01 正则表达式语法
基本正则表达式(BRE)
符号 | 作用 |
---|
^ | 在 [] 外表示以某个字符开头,在 [] 内表示除去哪些字符 |
$ | 表示以某个字符结尾 |
. | 表示匹配一个且只匹配一个字符 |
* | 表示匹配前边一个字符出现0次或者多次 |
[] | 表示匹配括号内的多个字符信息,一个一个匹配 |
\ | 将有特殊含义的字符转义为通配符 |
扩展正则表达式(ERE)
符号 | 作用 |
---|
+ | 表示前一个字符出现一次或一次以上 |
? | 表示前一个字符出现0次或者一次以上 |
| | 表示或者的关系,匹配多个信息 |
() | 匹配一个整体信息; 还可以接后项引用 |
{} | 定义前边字符出现几次 |
0x02 正则表达式与 Globbing 区别
符号 | Globbing | Regex |
---|
* | 0或多个任意字符 | 匹配规则的0或多个字符 |
? | 任意单个字符 | 匹配规则的0或1个字符 |
. | 非特殊字符 | 任意单个字符 |
{} | 匹配组 | 匹配次数 |
参考文档
- https://www.linuxjournal.com/content/globbing-and-regex-so-similar-so-different
- https://tldp.org/LDP/abs/html/globbingref.html