节点/ JavaScript全局文件/path匹配语法,通配符等

我刚刚findhttp://gruntjs.com/configuring-tasks#globbing-patterns ,这是我find的最有帮助的参考。

我一直在看:

有关glob模式语法的更多信息,请参阅node-glob和minimatch文档。

然而,我似乎无法find一个详尽的语法/用法列表。 这些testing可能是最好的参考,但仍然不是特别容易破译。

看来我必须错过一些关键的文档来源。

我想知道以下的区别:

path path/ path/* path/*.* path/** path/**/ path/**/* path/**/*.* 

以及我可能已经省略的任何其他重要的变化。 我猜这在应用node-glob风格匹配( 'public/**/*.*' )和.gitignorenode_modules )时会node_modules ,因为在前者中,需要明确包含所有内容, ,并在gitignore,这是通过忽略任何目录自动处理。 它是否正确?

首先,我从来没有使用node-globminimatch库。 但可能我仍然可以帮忙。 对于glob模式匹配有一种已知的语法,但坦率地说,在Google中进行快速search显示了简短明了。 也许这 – http://hgbook.red-bean.com/read/file-names-and-pattern-matching.html#id381184 – 是我find的最好的资源。 维基百科中的文章是详尽无遗的 – http://en.wikipedia.org/wiki/Glob_(programming) 。

总之,恕我直言, 节点glob

  • * – 表示文件名的任意数量的字符,但不能代表/
  • ** – 与*相同,但是跨越文件夹边界
  • [abxy] – 可以replace列表中的任何一个字符; [0-9]可以代表任何数字

因此,举个例子:

  • path/* – 在path所有文件和文件夹不recoursive
  • path/** – 不经意间的一切
  • path/*.* – 具有名称的所有文件和文件夹; 匹配a.txtnoextension.noextension.folder.out ,…

minimatch文档 – https://github.com/isaacs/minimatch , – 它也是一样的,但是使用正则expression式的更丰富和稍微困难的语法。 你可以在这里寻找一个综合的参考 – http://www.w3schools.com/js/js_regexp.asp 。 简而言之, path/.*代表path/.*下的任何东西,但不清楚是否recursion。 你可能会testing它。