Hgignore : 특정 파일 이외의 모든 파일을 무시하는 데 도움이됩니다

StackOverflow https://stackoverflow.com/questions/1512058

  •  19-09-2019
  •  | 
  •  

문제

특정 파일을 포함시키고 디렉토리에 다른 모든 것을 제외하려면 .hgdontignore 파일이 필요합니다. 기본적으로 특정 디렉토리에 .jar 파일 만 포함하고 싶습니다. 어떻게 할 수 있습니까? 나는 정규 표현 구문에 능숙하지 않습니다. 아니면 Glob 구문으로 할 수 있습니까? (나는 가독성을 위해 그것을 선호한다)

예제 위치로서 모든 파일을 아래에서 제외하고 싶다고 가정 해 봅시다. foo/bar/ 제외하고 foo/bar/*.jar.

도움이 되었습니까?

해결책

이렇게하려면이 정규식을 사용해야합니다.

foo/bar/.+?\.(?!jar).+

설명

당신은 그것을 무시해야 할 것을 말하고 있습니다. 그래서이 표현은 당신이 사물을 찾고 있습니다 ~하지 않다 원하다.

  1. 귀하는 이름 (상대 디렉토리 포함)이 포함 된 파일을 찾습니다 (foo/bar/)
  2. 그런 다음 기간 이전의 문자를 찾습니다 (.+? . == 기간 문자에 도달 할 때까지 언제든지 하나 이상의 문자를 일치시킵니다)
  3. 그런 다음 "jar"엔딩 (?! jar)이 없는지 확인하십시오 (이것은 미래의 부정적인 모습이라고합니다.
  4. 마침내 당신은 그것이 가지고있는 결말을 잡습니다 (.+)

정규 표현은 엉망이되기 쉽기 때문에 Regex Buddy 당신이 그들을 구축하는 데 도움이됩니다. 그것은 진정으로 도움이되는 평범한 영어로 재 촬영을 분해 할 것입니다.

편집하다

여기요 제이슨 s, 당신은 나를 붙 잡았습니다. 그 파일을 놓쳤습니다.

이 수정 된 Regex는 귀하가 나열한 모든 예제에 대해 작동합니다.

foo/bar/(?!.*\.jar$).+

찾는다 :

  • foo/bar/baz.txt
  • foo/bar/baz
  • foo/bar/jar
  • foo/bar/baz.jar.txt
  • foo/bar/baz.jar.
  • foo/bar/baz.
  • foo/bar/baz.txt.

그러나 찾을 수 없습니다

  • foo/bar/baz.jar

새로운 설명

이것은 "foo/bar/"에서 파일을 찾은 다음 ".jar"와 더 이상 문자가없고 더 이상 문자가 없으면 일치하지 않습니다. 이 경우 다음 문자와 일치하십시오.

다른 팁

마이클의 대답은 괜찮지 만 또 다른 옵션은 다음과 같습니다.

foo/bar/**

그런 다음 .jar 파일을 수동으로 추가하십시오. 무시 규칙에 의해 제외 된 파일을 항상 추가 할 수 있으며 무시를 무시합니다. 앞으로 만들어 낸 항아리를 추가하는 것을 기억하면됩니다.

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