문제
나는 Nant의 이름 지정 패턴의 구문적 내부성을 항상 잊어버렸다는 것을 인정해야 합니다(예:파일 세트에 사용되는 것).이중 별표/단일 별표는 내 마음 속에서 매우 잊혀지는 것 같습니다.
누군가 이름 지정 패턴에 대한 확실한 가이드를 제공할 수 있습니까?
해결책
규칙은 다음과 같습니다:
- 단일 별표(*)는 0개 이상의 문자와 일치합니다. 경로 이름 내에서
- 이중 별표(**)는 0개 이상의 문자와 일치합니다. 디렉터리 수준 전반에 걸쳐
- 물음표(?)는 경로 이름 내에서 정확히 한 문자와 일치합니다.
또 다른 생각은 이중 별표(**)는 슬래시(/)와 일치하지만 단일 별표(*)는 일치하지 않는다는 것입니다.
다음 파일이 있다고 가정해 보겠습니다.
- 바.txt
- src/bar.c
- src/baz.c
- src/test/bartest.c
그런 다음 패턴은 다음과 같습니다.
*.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 일치
다른 팁
다음은 문서에서 명확하지 않은 몇 가지 추가 패턴 일치입니다.benzado의 답변에 있는 예제 파일에 대해 NAnt를 사용하여 테스트되었습니다.
src**
2, 3, 4와 일치**.c
2, 3, 4와 일치**ar.*
1과 2 일치**/bartest.c/**
4개 일치src/ba?.c/**
2와 3 일치
이중 별표(**
)은 일치하는 폴더 이름과 연관되어 있는 반면 단일 기호는 별표(* = multi characters
) 및 물음표(? = single character
)은 파일 이름을 일치시키는 데 사용됩니다.
확인해 보세요 낸트 참조.파일 세트 패턴은 다음과 같습니다.
'*'는 0개 이상의 문자와 일치합니다.*.cs
'?' 한 캐릭터와 일치합니다?.cs
그리고 '**'는 디렉토리 트리와 일치합니다.src/**/*.cs는 src의 하위 디렉터리에서 모든 cs 파일을 찾습니다.
제휴하지 않습니다 StackOverflow