什么是**glob角色?

Jwa*_*622 68 glob gulp

我的反应gulpfile中有这条路径:

var path = {
  HTML: 'src/index.html',
  ALL: ['src/js/*.js', 'src/js/**/*.js', 'src/index.html'],
  JS: ['src/js/*.js', 'src/js/**/*.js'],
  MINIFIED_OUT: 'build.min.js',
  DEST_SRC: 'dist/src',
  DEST_BUILD: 'dist/build',
  DEST: 'dist'
};
Run Code Online (Sandbox Code Playgroud)

什么是双球形角色?

我知道单个glob是什么......但是双重的是什么? 单个水珠

pax*_*blo 73

它与单个星号几乎相同,但可能包含多个目录级别.

换句话说,虽然/x/*/y会匹配:

/x/a/y
/x/b/y
Run Code Online (Sandbox Code Playgroud)

等等(通配符部分只有一个目录级别),双星号/x/**/y也会匹配以下内容:

/x/any/number/of/levels/y
Run Code Online (Sandbox Code Playgroud)

顺便说一句,尽管我讨厌将大型机归功于任何东西,但我相信自从MVS的最后几天开始使用它就可以在多个级别选择数据集.

  • @AleksandrH,不,这不是正常意义上的正则表达式:*字符没有匹配,*只有目录名称.这是*具体*用于分层文件系统.在第一点,如果允许空目录名称,`/ x // y`将完全有效.我从来没有见过允许这样的文件系统.在第二点,"*"表示匹配"任何目录名称,*仅一级"*(因此不会超出下一个`/`分隔符),而`**'表示"匹配*任意数量的级别*每个级别的任何目录名称"(可以根据需要跨越多个`/`分隔符). (4认同)
  • 好的,我明白了,谢谢你的澄清 (3认同)
  • 值得注意的是,对于`/ x / ** / y /`,还包括`/ x / y /`,这很简洁。 (3认同)
  • 这没有任何意义。如果 * 表示 0 个或多个字符,则该模式可能匹配 /x//y,这是无意义的。您真正要说的是“任意数量的字符,然后是任意数量的字符”。这不就是……哦,我不知道……*任意数量的字符*??? (2认同)

Sea*_*ean 24

它通常用于指示任意数量的子目录.所以

src/js/**/*.js
Run Code Online (Sandbox Code Playgroud)

会匹配

src/js/files/*.js
src/js/more-files/*.js

etc
etc
Run Code Online (Sandbox Code Playgroud)

  • 单个星号也可以匹配您的示例.我想你的意思是在第二个例子中包含一个额外的子子目录. (5认同)

Tho*_* S. 16

**匹配包含正斜杠的/
*任何字符匹配正斜杠之外的任何字符(仅匹配文件或目录名)

  • 这很接近但并不完美。`x/**` 将匹配 `x`。请参阅 https://metacpan.org/pod/distribution/File-Globstar/lib/File/Globstar.pod (4认同)
  • 对于在寻找有关 python glob 函数的信息时发现此讨论的人:glob 函数按照您的描述工作。“/x/**/y”与“/x/y”不匹配 (3认同)

Shi*_*ora 6

与 Grunt 一样,双 ** 表示“查看 js 中的所有子文件夹以及所有 .js 文件”。

您实际上可以参考这里相同的内容:

https://www.codefellows.org/blog/quick-intro-to-gulp-js