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

一概念

1.通配符:英文wildcard,通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个真正字符

2.正则表达式,又称规则表达式(英语Regular Expression在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

通配符与正则表达式很容易混淆,首先要明白二者是不同的,个人感觉通配符用于Linux的shell命令(如文件名相关操作)中,而正则表达式用于文本内容中的字符串搜索和替换等。通配符是Linux系统本身就支持的,而正则表达式用于vim编辑器或awk程序,这些文本处理工具正是由于支持正则表达式才变得强大。

二类型

1.通配符

     

  • *星号,匹配任何字符
  • ? 问号,匹配任意一个字符
  • []中括号,匹配括号中的一个字符

     星号(*)

可以使用星号代替0个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。要缩小范围可以输入AEW*.txt,查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txt、AEWDF.txt。
问号(?)
可以使用问号代替一个字符。如果输入love?,查找以love开头的一个字符结尾文件类型的文件,如lovey、lovei等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。
通配符包括星号“*”和问号“?”
星号表示匹配的数量不受限制,而后者的匹配字符数则受到限制。这个技巧主要用于英文搜索中,如输入““computer*”,就可以找到“computer、computers、computerised、computerized”等单词,而输入“comp?ter”,则只能找到“computer、compater、competer”等单词。                                                                                                     2.正则表达式

元字符 作用
* 前一个字符匹配0次或任意多次
. 匹配除了换行符以外任意一个字符
^ 匹配行首。例如:^helloworld会匹配以helloworld开头的行
$ 匹配行尾。例如:helloworld$会匹配以helloworld结尾的行
[] 匹配中括号里的任意指定的一个字符,但只匹配一个字符
[^] 匹配除中括号以外的任意一个字符
\ 转义符,取消特殊含义
{n} 表示其前面的字符恰好出现n次
{n,} 表示其前面的字符出现不小于n次
{n,m} 表示其前面的字符至少出现n次,最多出现m次

三.举例

1.正则表达式

^   匹配行首

wKioL1UTuvKRmR1vAABGAd2UAw8097.jpg

$   匹配行尾

.   匹配任意字符

wKiom1UTtUSQbnzXAAApkd3bCIY007.jpg

*   匹配*之前的字符0次或者多次

wKioL1UTtv_ANosBAABDzZ-M75Y883.jpg

ls | grep “^h.n”

匹配的是以h开头的第二个字符为任意字符,第三个字符为n的所有文件

ls | grep "^h.n*"

匹配的是以h开头的第二个字符为任意字符,第三个字符为n的0次和2次

因为,hjkkk这个文件的第三个字符为k不为n,*匹配的时候将n匹配0次的时候也就是第三个字符不为n也将之匹配并输出,至于hrnkkk和hungss第三个字符都出现一次,所有grep顺利将其匹配输出


2.通配符

?代表匹配任意单个字符

wKiom1UTuGzgjW_NAACPsdcBAHY030.jpg

* 代表匹配任意字符的组合也也可以匹配单个字符

wKiom1UTuQ_xT3GbAAE2zMTt4Vw647.jpg

特别注意的是*在正则表达式中个通配符中使用的不同



  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值