Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与ANT模式语法的混淆和可能的变化_Ant_Design Patterns - Fatal编程技术网

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

与ANT模式语法的混淆和可能的变化,ant,design-patterns,Ant,Design Patterns,作为大型服务器项目的一部分,我正在开发一个ANT模式解析器 在这篇文章的答案中有一些蚂蚁模式的好例子:然而,我仍然对一些可能的排列感到困惑 ANT模式文档中的一个示例如下: **/test/**匹配路径中包含测试元素的所有文件,包括作为文件名的测试 我的理解是,**匹配一个或多个目录以及这些目录下的文件。因此,我希望**/test/**匹配src/test/subfolder/file.txt和test/file2.txt,但这句话似乎暗示它还将匹配名为src/test的文件。即使在模式中的测试

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

在这篇文章的答案中有一些蚂蚁模式的好例子:然而,我仍然对一些可能的排列感到困惑

ANT模式文档中的一个示例如下:

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

我的理解是,
**
匹配一个或多个目录以及这些目录下的文件。因此,我希望
**/test/**
匹配
src/test/subfolder/file.txt
test/file2.txt
,但这句话似乎暗示它还将匹配名为
src/test
的文件。即使在模式中的
测试之后有
/
,这是否正确

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

folder**
folder1/folder**
**folder/file.txt
我可以想象,他们的工作原理与

folder*/**
folder1/folder*/**
**/*folder/file.txt

但是他们被允许吗?

我按照coolcfan的建议对NAnt做了一些测试,并回答了我自己的问题。问题中的模式都是有效的

基于以上问题中链接中的以下文件:

  • bar.txt
  • src/bar.c
  • src/baz.c
  • src/test/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

    创建一些文件夹和空文件,用
    编写一个测试构建文件,您将看到模式的实际工作方式。很好的一点,但我想我希望在不实际学习使用NAnt的情况下学习模式语法。。。