与ANT模式语法和可能的变化混淆

spa*_*lug 3 ant design-patterns

我正在开发一个ANT模式解析器作为大型服务器项目的一部分.

在这篇文章的答案中有一些很好的ANT模式示例:我如何使用Nant/Ant命名模式?但是,我仍然对一些可能的排列感到困惑.

这里的ANT模式文档的一个例子http://nant.sourceforge.net/release/0.85/help/types/fileset.html如下:

**/test/** 匹配路径中包含test元素的所有文件,包括test作为文件名.

我的理解是**匹配一个或多个目录以及这些目录下的文件.所以我希望**/test/**匹配src/test/subfolder/file.txt,test/file2.txt但这句话似乎暗示它也会匹配一个名为的文件src/test.这是正确的,即使在模式/之后有一个test吗?

此外,尚不清楚以下模式是否有效:

folder**
folder1/folder**
**folder/file.txt
Run Code Online (Sandbox Code Playgroud)

我想他们会像以前一样工作

folder*/**
folder1/folder*/**
**/*folder/file.txt
Run Code Online (Sandbox Code Playgroud)

但是他们被允许了吗?

spa*_*lug 5

我根据coolcfan的建议对NAnt进行了一些测试并回答了我自己的问题.问题中的模式都是有效的.

根据我上面问题中链接的以下文件:

  1. 跳回到bar.txt
  2. SRC/bar.c
  3. SRC/baz.c
  4. 的src /测试/ bartest.c

以下意外模式也有效:

  • src**                      比赛2,3和4
  • **.c                        匹配2,3和4
  • **ar.*                    匹配1和2
  • **/bartest.c/**  比赛4
  • src/ba?.c/**        比赛2和3

为了完整起见,这些是对上述问题中链接的以下模式的补充:

  • *.c             什么都不匹配(当前目录中没有.c文件)
  • src/*.c     比赛2和3
  • */*.c         匹配2和3(因为*只匹配一个级别)
  • **/*.c       匹配2,3和4(因为**匹配任意数量的级别)
  • bar.*         比赛1
  • **/bar.*   匹配1和2
  • **/bar*.* 匹配1,2和4
  • src/ba?.c 比赛2和3