How do I use Nant/Ant naming patterns?

前端 未结 4 1091
广开言路
广开言路 2020-11-28 17:58

I have to admit that I always forgot the syntactical intracacies of the naming patterns for Nant (eg. those used in filesets). The double asterisk/single asterisk stuff seem

相关标签:
4条回答
  • 2020-11-28 18:22

    Check out the Nant reference. The fileset patterns are:

    '*' matches zero or more characters, e.g. *.cs
    '?' matches one character, e.g. ?.cs

    And '**' matches a directory tree e.g. src/**/*.cs will find all cs files in any sub-directory of src.

    0 讨论(0)
  • 2020-11-28 18:24

    The rules are:

    • a single star (*) matches zero or more characters within a path name
    • a double star (**) matches zero or more characters across directory levels
    • a question mark (?) matches exactly one character within a path name

    Another way to think about it is double star (**) matches slash (/) but single star (*) does not.

    Let's say you have the files:

    1. bar.txt
    2. src/bar.c
    3. src/baz.c
    4. src/test/bartest.c

    Then the patterns:

    • *.c             matches nothing (there are no .c files in the current directory)
    • src/*.c     matches 2 and 3
    • */*.c         matches 2 and 3 (because * only matches one level)
    • **/*.c       matches 2, 3, and 4 (because ** matches any number of levels)
    • bar.*         matches 1
    • **/bar.*   matches 1 and 2
    • **/bar*.* matches 1, 2, and 4
    • src/ba?.c matches 2 and 3    
    0 讨论(0)
  • 2020-11-28 18:26

    Here's a few extra pattern matches which are not so obvious from the documentation. Tested using NAnt for the example files in benzado's answer:

    • src**                      matches 2, 3 and 4
    • **.c                        matches 2, 3, and 4
    • **ar.*                    matches 1 and 2
    • **/bartest.c/**  matches 4
    • src/ba?.c/**        matches 2 and 3
    0 讨论(0)
  • 2020-11-28 18:37

    Double asterisks (**) are associated with the folder-names matching, whereas single symbols asterisk (* = multi characters) as well as the question-mark (? = single character) are used to match the file-names.

    0 讨论(0)
提交回复
热议问题