随笔
相关推荐
顶部

Glob 模式匹配

Glob 模式匹配是一种文件名匹配规则,它允许你使用特定的模式来匹配文件系统中的文件名。这种模式匹配通常用于命令行界面和编程语言中,以便于用户和开发者能够快速地选择一组文件,而不是逐一指定每个文件。

Glob 模式匹配在不同的操作系统和编程语言中可能有一些差异,但基本的通配符和概念是相似的。在 Unix-like 系统中,Glob 是一个常用的命令行工具,而在编程语言如 Python 中,也有内置的库(如 Glob 模块)来实现类似的功能。

在线匹配校验工具 Glob tester

语法

对于一个路径如 /project/assets/logo.png,其中 / 表示分隔符,.png 表示文件后缀名。

Glob 匹配语法与正则表达式类似。具有通配符,匹配数量,或运算,非运算等。

分隔符无法通过通配符匹配(**表示全部子孙级目录文件)。

通配符解释
*匹配单个片段中零或多个字符
**匹配多个/跨片段中的零或多个字符
?匹配路径中的一个字符
[abc]匹配方括号中任意一个字符
[a-e]匹配字符范围中任意一个字符
[^abc]匹配字符范围外任意一个字符
{a,bc,d}匹配全部字符(a 或者 bc 或者 d,可以同时匹配多个)
{a..d}匹配范围全部字符(a 或者 b 或者 c 或者 d)
!(pattern | pattern | pattern)匹配给定的匹配规则外的结果
?(pattern | pattern | pattern)匹配给定的匹配规则中 0 次或 1 次的结果
+(pattern | pattern | pattern)匹配给定的匹配规则中大于 1 次的结果
*(pattern | pattern | pattern)匹配给定的匹配规则中任意次的结果
@(pattern | pattern | pattern)匹配给定的匹配规则中 1 次的结果

示例

匹配/a.js/b.png/c.js/d.js/e/s1.js/e/s2.js/e/s3.pngf/a.jsf/a.png
/*.js
/e/*.js
/e/s?.png
/?/?.png
/[abc].js
/?/s[1-9].js
/**/?[^2].*
/*.{png,js}
/{e,f}/{s,a}.*
/**/!(?.js)
/e/s?(1|2).js

参考

  1. Glob tester - tool for testing glob patterns
  2. glob 匹配规则--使用/教程/实例_glob 规则-CSDN 博客

✨相关推荐✨

✨ Vue Cli的 mode 模式和 env 环境变量✨ Vite 模式与环境变量✨ 格式化配置文件 editorConfig 属性说明✨ Vite 配置一览✨ NPM 代理与镜像配置