Glob Pattern:方便、快捷地查询你项目中的所有文件
2023-08-02 20:14:34来源:哔哩哔哩

简介

Glob Pattern 是一套查询系统中文件的语法,类似于正则表达式,但又与正则表达式不同。Glob Pattern 最开始起源于 Unix 系统 Shell 命令行脚本。以 cp *.jpg ./thumbnails举例——这句指令表示复制当前目录内所有以 .jpg结尾的文件到 thumbnails/目录中,语法很简洁。


(相关资料图)

由于 Glob Pattern 这套匹配文件的语法太好用了,因此各个编程语言都有自己的一套。在前端领域 平台,比较有代表性实现包有:globfast-globglobby。不过从下载量上来看,glob是最受欢迎的,如果你的项目需要用到查询文件的需求,可以优先考虑使用 glob

语法

Glob Pattern 相当于正则表达式,语法没那么复杂,因为 Glob Pattern 的目的很简单,就是为了匹配文件——没有目录什么事。下面我们就来学习下 Glob Pattern 的语法。

?:匹配任意一个字符

*:匹配任意长度的字符串

/:匹配一个路径分隔符

**:这个就比较有意思了,Glob Pattern 中它有个专有名词叫 globstar。一共有两种使用方式:单独(即 **)使用时匹配任意层级下的所有文件;后面跟路径分隔符(即 **/)时,匹配任意层级的目录。/myapp/**.js是无效用法

{a,b}:是一个延展语法,Glob Pattern 中它有个专有名词叫 brace expansion,会讲当前的 Glob Pattern 扩展成多个单独的形式。{}内有两种分隔符号可以使用,分别是逗号(,)和两点(..)。

比如:**/*.{b,c}会被扩展为 **/.b**/.c,最终的结果也是这两个 Pattern

比如:**/{a..c}会被扩展为 **/.a**/.b**/.c

!(a|b):一个扩展语法,表示排除(!)圆括号(())里可能的值

练习

以下截图来自 (/)站点,这是一个不错的学习 Glob Pattern 语法的在线站点。感兴趣的同学访问尝试下。

我们以这样一个项目结构为例:

**/*.js

匹配项目中的任意 js 文件。

同理,匹配项目中的所有的 png 图片就是 **/*.png

/myapp/config/*

匹配 config/目录下的所有文件。

**/*.{png,ico,md}

匹配所有的 png、ico 和 Markdown 文件。

/myapp/src/**/*.ts

匹配 src目录下所有的 ts 文件。

**/!(*.module).ts

匹配所有的 .ts文件,但排除以 .结尾的文件。

glob的使用

下面我们简单了解下 glob 包的使用。

安装依赖:

引入 glob查询方法:

使用:

总结

以上就是关于 Glob Pattern 的所有内容。如果你的工作中有涉及文件查找工作,建议尝试下 glob下看看,会让你的查找更有效率,代码也更加简洁。

标签:

最后一页
世界电影排行榜前十名豆瓣 世界电影排行榜前十名

精彩推荐

资讯News

  • 聚焦Policy