node NPM库glob通配符匹配文件名minimatch模式匹配字符串学习
NPM酷库
每天两分钟,了解一个流行NPM库。
经常,我们的程序需要对磁盘文件进行管理,就需要读取磁盘上的文件列表,然后可能会需要判断文件夹或文件名,还可能需要递归扫描子目录。
glob
今天我们要了解的库 glob,就是专门用来扫描磁盘文件,并返回我们需要的文件类型。
const glob = require("glob")
glob("**/*.js", function (error, files) {
// files 就是我们得到的文件的列表
})上述代码中,我们会递归查找当前目录下的所有.js 文件,因为我们使用了 **/*.js 通配符做查找条件。
glob 支持的通配符模式
glob 支持强大的匹配规则,但是要注意glob的匹配规则并不是正则表达式,详细支持如下:
*匹配0到多个字符?匹配一个字符[...]匹配一个字符列表,类似正则表达式的字符列表!(pattern|pattern|pattern)反向匹配括号内的模式?(pattern|pattern|pattern)匹配0或1个括号内的模式+(pattern|pattern|pattern)匹配至少1个括号内的模式*(pattern|pattern|pattern)匹配0到多个括号内的模式@(pattern|pat*|pat?erN)精确匹配括号内的模式**匹配0到多个子目录,递归匹配子目录
其他特性
除下上文中的异步接口,glob还支持 glob.sync() 同步接口,另外,glob还支持大量的参数选项,比如cwd,root 等等,具体请参考官方文档。
参考文档
glob: https://github.com/isaacs/nod...
minimatch
glob 的基础库: minimatch,用来模式匹配字符串的库。
其实,glob库支持的的各种模式都来自于minimatch。
minimatch 的用法
const minimatch = require("minimatch")
minimatch("bar.foo", "*.foo") // true
minimatch("bar.foo", "*.bar") // false
minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // trueminimatch 支持的通配符模式
要注意,minimatch的匹配模式并非是正则表达式,具体支持如下:
*匹配0到多个字符?匹配一个字符[...]匹配一个字符列表,类似正则表达式的字符列表!(pattern|pattern|pattern)反向匹配括号内的模式?(pattern|pattern|pattern)匹配0或1个括号内的模式+(pattern|pattern|pattern)匹配至少1个括号内的模式*(pattern|pattern|pattern)匹配0到多个括号内的模式@(pattern|pat*|pat?erN)精确匹配括号内的模式**匹配0到多个子目录,递归匹配子目录
参考资料
https://github.com/isaacs/nod...
https://github.com/isaacs/min...
https://en.wikipedia.org/wiki...
以上就是node NPM库glob通配符匹配文件名minimatch模式匹配字符串学习的详细内容,更多关于node NPM库glob minimatch的资料请关注脚本之家其它相关文章!
相关文章
windows使用nvm对node进行版本管理切换的完整步骤
这篇文章主要介绍了windows使用nvm对node进行版本管理切换的完整步骤,在使用之前各位务必卸载掉自己安装过的nvm或者node版本包括环境变量之类的,要保证自己的电脑完全没有node环境,需要的朋友可以参考下2024-03-03
npm ERR! Node.js v20.11.0错误的解决
在使用 npm 进行包管理和构建项目的过程中,有时会遇到错误信息 npm ERR! Node.js v20.11.0,本文就来介绍一下如何解决,感兴趣的可以了解一下2024-02-02
Node.js学习之查询字符串解析querystring详解
这篇文章主要给大家介绍了关于Node.js查询字符串解析querystring的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用node.js具有一定的参考学习价值,需要的朋友们下面来一起看看吧。2017-09-09


最新评论