我必须承认,我总是会忘记Nant命名模式(例如在文件集中使用的模式)的语法细节。双星号/单星号的东西似乎在我的脑海中容易被遗忘。
是否有人可以提供一个权威指南来解释这些命名模式?
另一种理解方式是,双星号 (**) 匹配斜杠 (/),但是单个星号 (*) 不匹配。
假设你有以下文件:
那么以下模式将匹配相应的文件:
*.c
不匹配任何文件(当前目录中没有 .c 文件)src/*.c
匹配 2 和 3*/*.c
匹配 2 和 3(因为 * 只匹配一层)**/*.c
匹配 2、3 和 4(因为 ** 匹配任意级数)bar.*
匹配 1**/bar.*
匹配 1 和 2**/bar*.*
匹配 1、2 和 4src/ba?.c
匹配 2 和 3**.c
会匹配什么? - chharveybar.txt
隐含了 ./bar.txt
(.
表示当前目录)。因此,该列表实际上是 ./bar.txt
、./src/bar.c
等等,而 ./
是默认的。 - benzado以下是一些在文档中不太明显的模式匹配。此示例使用benzado答案中的文件并使用NAnt进行了测试:
src**
匹配2,3和4**.c
匹配2,3和4**ar.*
匹配1和2**/bartest.c/**
匹配4src/ba?.c/**
匹配2和3'*'匹配0个或多个字符,例如*.cs
'?'匹配1个字符,例如?.cs
而 '**' 匹配一个目录树,例如src/**/*.cs将会在src的任何子目录中找到所有的cs文件。