node NPM库glob通配符匹配文件名minimatch模式匹配字符串学习

 更新时间:2023年07月24日 11:42:15   作者:脉冲云_梁兴臣  
这篇文章主要为大家介绍了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 }) // true

minimatch 支持的通配符模式

要注意,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的资料请关注脚本之家其它相关文章!

相关文章

  • 详解NODEJS的http实现

    详解NODEJS的http实现

    这篇文章主要介绍了详解NODEJS的http实现的技术过程以及详细分析,需要的朋友学习参考下吧。
    2018-01-01
  • Node.js 使用request模块下载文件的实例

    Node.js 使用request模块下载文件的实例

    今天小编就为大家分享一篇Node.js 使用request模块下载文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • node.js中的fs.futimesSync方法使用说明

    node.js中的fs.futimesSync方法使用说明

    这篇文章主要介绍了node.js中的fs.futimes方法使用说明,本文介绍了fs.futimesSync方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • Node.js学习入门

    Node.js学习入门

    本文主要介绍了Node.js的入门知识,包括:Node.js的特点,运行环境以及应用小例。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • Node.js 实现简单的无侵入式缓存框架的方法

    Node.js 实现简单的无侵入式缓存框架的方法

    这篇文章主要介绍了Node.js 实现简单的无侵入式缓存框架的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • Node.js全局处理响应并进行异常管理

    Node.js全局处理响应并进行异常管理

    这篇文章主要为大家介绍了Node.js全局处理响应并进行异常管理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Node.js报错信息Error: Cannot find module 'XXX'问题及解决

    Node.js报错信息Error: Cannot find module 'XXX'问题及解

    这篇文章主要介绍了Node.js报错信息Error: Cannot find module 'XXX'问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • nodejs转换音频文件格式并压缩导出zip格式(vscode语音插件开发)

    nodejs转换音频文件格式并压缩导出zip格式(vscode语音插件开发)

    FFmpeg是一套开源的音视频处理工具,通俗地讲,可以对音视频文件进行剪切、拼接、水印、转码等处理,这篇文章主要介绍了nodejs转换音频文件格式并压缩导出zip格式(vscode语音插件开发),需要的朋友可以参考下
    2023-05-05
  • NodeJs从头到尾构建一个Typescript项目的全过程

    NodeJs从头到尾构建一个Typescript项目的全过程

    前端开发中的各种脚手架对TypeScript支持已经很完善了,这篇文章主要介绍了NodeJs从头到尾构建一个Typescript项目的全过程,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • nodejs log4js 使用详解

    nodejs log4js 使用详解

    这篇文章主要介绍了nodejs log4js 使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05

最新评论