"通配符"和"正则表达式"的区别

本文详细介绍了通配符与正则表达式的使用方法及区别。通配符通常应用于文件名的模糊匹配中,如find和ls命令;而正则表达式则广泛应用于文本内容的过滤和搜索,例如在grep、awk等工具中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通配符是系统level的 而正则表达式需要相关工具的支持: egrep, awk, vi, perl。

在文本过滤工具里,都是用正则表达式,比如像awk,sed等,是针对文件的内容的。
通配符多用在文件名上,比如查找find,ls,cp,等等。

###1.通配符

shell 的叫法,某些字符的集合

符号
任意一个字符
*0-多个任意字符
[ab]只匹配其中的一个字符
[a-z]只匹配a-z其中的一个字符
[^ab]除了a或b
[^a-z]?除了a-z开头后面有一个字符,第一个字符不能是字母开头的
[a-z][0-9]第一个字符是字母,第二个是数字
?*第一个任意字符,后面随意
*0-多个任意字符
  • ?和* 不能匹配.
  • []匹配一个字符

###2.正则

符号
.代表单个字符,类似shell?
+前面字符可以出现多次,即一次以上,不能是0次
前面字符可以出现1次或0次
^a以a开头
x$以x结尾
.*相当于shell里的*
+ 和shell中的不一样,这里的表示前面字符可以出现0-多次。