我正在开发 ANT 模式解析器,作为大型服务器项目的一部分。
这篇文章的答案中有一些很好的 ANT 模式示例:如何使用 Nant/Ant 命名模式? https://stackoverflow.com/questions/69835/how-do-i-use-nant-ant-naming-patterns?answertab=votes#tab-top然而,我仍然对一些可能的排列感到困惑。
ANT 模式文档的示例之一请参见此处http://nant.sourceforge.net/release/0.85/help/types/fileset.html http://nant.sourceforge.net/release/0.85/help/types/fileset.html如下:
**/test/**
匹配路径中包含 test 元素的所有文件,包括 test 作为文件名。
我的理解是**
匹配一个或多个目录以及这些目录下的文件。所以我期望**/test/**
匹配src/test/subfolder/file.txt
and test/file2.txt
但这个语句似乎暗示它也会匹配名为的文件src/test
。这是正确的吗?即使有/
之后test
在模式中?
此外,尚不清楚以下模式是否有效:
folder**
folder1/folder**
**folder/file.txt
我想它们的工作原理与
folder*/**
folder1/folder*/**
**/*folder/file.txt
但他们被允许吗?
我按照 NAnt 做了一些测试coolcfan的建议并回答了我自己的问题。问题中的模式都是有效的。
基于我上面问题中的链接中的以下文件:
- bar.txt
- src/bar.c
- src/baz.c
- 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)