Path 关于全球化模式的困惑
在GruntJS网站上,它有一个,但有一点我有点困惑Path 关于全球化模式的困惑,path,gruntjs,glob,Path,Gruntjs,Glob,在GruntJS网站上,它有一个,但有一点我有点困惑 foo/***.js将匹配foo/ 子目录及其所有子目录 我看到双星号匹配所有路径,包括/,但如果文件位于foo路径中,这是否意味着它正在尝试匹配名为foo//*.js的路径 在我发现这一点之前,我一直在尝试类似于foo/{,***}*.js的东西,但这从来没有真正达到我想要的效果,我有点困惑为什么这样做不起作用。双星号意味着模式应该执行递归匹配;i、 e.查看它找到的所有子目录。例如,模式将匹配: 1. foo/bar.js 2. foo/
foo/***.js
将匹配foo/
子目录及其所有子目录
我看到双星号匹配所有路径,包括/
,但如果文件位于foo
路径中,这是否意味着它正在尝试匹配名为foo//*.js
的路径
在我发现这一点之前,我一直在尝试类似于
foo/{,***}*.js的东西,但这从来没有真正达到我想要的效果,我有点困惑为什么这样做不起作用。双星号意味着模式应该执行递归匹配;i、 e.查看它找到的所有子目录。例如,模式将匹配:
1. foo/bar.js
2. foo/baz.js
3. foo/bar/baz.js
4. foo/bar/baz/qux.js
它将与foo.txt
文件不匹配。尽管如此,诸如foo/**
之类的模式将递归地匹配所有内容(txt
,js
,css
等)
然而,像foo/*.js
这样的模式将只匹配1和2,因为它不是递归模式。我理解这一部分。让我困惑的是,双星号后面有一条斜线。斜杠在这里不被解释为文字吗?我不这么认为,不。您使用的模式实际上在幕后转换为正则表达式,因此“magic”*
被替换为字符类。它与foo//qux.txt
不匹配,因为扩展名错误。哎呀,.txt
是一个打字错误,应该是.js
。现在已经纠正了。