문제

나는 Nant의 이름 지정 패턴의 구문적 내부성을 항상 잊어버렸다는 것을 인정해야 합니다(예:파일 세트에 사용되는 것).이중 별표/단일 별표는 내 마음 속에서 매우 잊혀지는 것 같습니다.

누군가 이름 지정 패턴에 대한 확실한 가이드를 제공할 수 있습니까?

도움이 되었습니까?

해결책

규칙은 다음과 같습니다:

  • 단일 별표(*)는 0개 이상의 문자와 일치합니다. 경로 이름 내에서
  • 이중 별표(**)는 0개 이상의 문자와 일치합니다. 디렉터리 수준 전반에 걸쳐
  • 물음표(?)는 경로 이름 내에서 정확히 한 문자와 일치합니다.

또 다른 생각은 이중 별표(**)는 슬래시(/)와 일치하지만 단일 별표(*)는 일치하지 않는다는 것입니다.

다음 파일이 있다고 가정해 보겠습니다.

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

그런 다음 패턴은 다음과 같습니다.

  • *.c 일치하는 항목이 없습니다(현재 디렉터리에 .c 파일이 없습니다).
  • src/*.c 2와 3 일치
  • */*.c 2 및 3과 일치합니다(*는 한 레벨에만 일치하므로).
  • **/*.c2, 3, 4와 일치합니다(**는 임의의 수준 수와 일치하므로).
  • bar.* 1개와 일치
  • **/bar.* 1과 2 일치
  • **/bar*.* 1, 2, 4와 일치
  • src/ba?.c 2와 3 일치

다른 팁

다음은 문서에서 명확하지 않은 몇 가지 추가 패턴 일치입니다.benzado의 답변에 있는 예제 파일에 대해 NAnt를 사용하여 테스트되었습니다.

  • src** 2, 3, 4와 일치
  • **.c2, 3, 4와 일치
  • **ar.* 1과 2 일치
  • **/bartest.c/** 4개 일치
  • src/ba?.c/** 2와 3 일치

이중 별표(**)은 일치하는 폴더 이름과 연관되어 있는 반면 단일 기호는 별표(* = multi characters) 및 물음표(? = single character)은 파일 이름을 일치시키는 데 사용됩니다.

확인해 보세요 낸트 참조.파일 세트 패턴은 다음과 같습니다.

'*'는 0개 이상의 문자와 일치합니다.*.cs
'?' 한 캐릭터와 일치합니다?.cs

그리고 '**'는 디렉토리 트리와 일치합니다.src/**/*.cs는 src의 하위 디렉터리에서 모든 cs 파일을 찾습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top