通配符与正则表达式很容易混淆,混淆的原因是它们都使用了一些特殊字符来描述满足其条件的某一类字符。但他们确实是完全两个东西,regex比通配符强大得多,它往往依赖一些工具或者语言的支持,才能实现它强大的功能。比如Python和Perl同时都支持regex,因此我们可以使用该语言完成regex匹配。
那通配符呢?个人感觉他只是用于Linux或者Windows系统中,是系统本身自带的东西用于简单的文件索引。在makefile中,同样也会用到。
而且通配符的个数很少,只有以下几个:
1 *:匹配0个或者多个字符
2 ?:匹配任何单个字符,且不能为空字符
3 [a-z]:匹配方括号中指定范围内的单个字符
4 [!9]:不匹配方括号内所列字符或者指定范围内的单个字符
5 {c1,c2}:同c1或者c2相匹配,其中c1和c2也是通配符。举例:{[0-9]*,[wings]}
另外,需要注意的是在regex里面也有以上字符作为regex的元字符,但是意义和用法却不尽相同。