通配符和正则区别

狂风中的少年 提交于 2019-12-04 11:55:35

通配符和正则区别

`通配符是shell在做PathnameExpansion时用到的。说白了一般只用于文件名匹配,它是由shell解析的,比如find,ls,cp,mv等。

`正则表达式是用来匹配字符串的,针对文件内容的文本过滤工具里,大都用到正则表达式,如vi,grep,awk,sed等。
另外,这篇文章只针对Linux下的文本过滤工具的正则表达式进行讨论,其他的一些编程语言,如C++(c regex,c++ regex,boost regex),java,python等都有自己的正则表达式库。
简单点来说,正则表达式是对一组正在处理的文本的描述。

通配符

符号 通配符解释 .
* 所有
. 当前目录
.. 上级目录
- 上一次所在目录
~ 家目录
# 注释 超级管理员的命令提示符
$ 引用变量 普通用户的命令提示符
? 匹配任意一个字符
! 非取反
&&
||
| 管道
[] 匹配中括号中任意一个字符
{} 生成序列,整体
`` $() 先执行内的代码
& 放到后台运行
\ 转义字符
[^] 不匹配[]中任意一个字符

正则 RE

符号 正则解释
* 匹配前面的字符 0或 0次以上
.* 匹配任意字符0或0次以上
. 任意字符
^ 开头
$ 结尾
^$ 空行
\ 转义字符
| 或者
[] 匹配[]中任意一个字符
[^] 不匹配[]中任意一个字符
() 后向引用 把前面括号中匹配的内容 拿到后面表达式使用
+ 前面的字符匹配1 或1次以上
? 前面的字符匹配0或1次
{n} 前面的字符匹配n次
{n,} 前面的字符匹配至少n次
{n,m} 前面的字符至少匹配n次, 但是不超过m次
{,m} 前面的字符匹配m次
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!