문제

Mercurial을 사용하면 "Keepers"라는 특정 디렉토리의 파일을 제외한 모든 파일을 무시해야합니다.

사물의 얼굴에서, 이것은 Regex와 부정적인 룩 그가 사용하기 쉬운 것처럼 보였다. 그러나 Regex Buddy 및 기타 도구에서 Regex를 확인할 수 있지만 Tortoisehg에서는 예상대로 작동하지 않습니다.

파일 :

  • 정크 junk.txt
  • 정크 텍스트
  • 골키퍼 테스트 테스트
  • 골키퍼 test test2 hi.txt
  • Keepersblah.txt

골키퍼의 두 파일 만 무시해서는 안됩니다.

여기에 내가 바랐던 regex가 다음과 같습니다.

^(?!keepers/).+$

유감스럽게도 모든 파일이 무시됩니다. 변경하면 :

^(?!keepers).+$

그것은 당신이 기대하는대로 작동합니다. 즉, 골키퍼로 시작하지 않는 파일/폴더는 무시합니다. 그러나 나는 골키퍼로 시작하는 파일을 무시하고 싶습니다.

기괴하게, 내가 이것으로 바꾸면 :

^(?!keepers/).+\..+$

폴더와 올바르게 일치하지만 확장자가없는 경우 Keepers 폴더에없는 파일을 무시하지 않습니다.

모든 조언에 감사드립니다.

Dead Imageshack 링크 제거

도움이 되었습니까?

해결책

첫 번째 표현의 문제는 Regex가 "골키퍼"자체에 대해 테스트된다는 것입니다. 이 경우 추가 조건으로 추가 할 수 있습니다.

^(?!keepers(?:/|$))

또는 (덜 컴팩트하지만 이해하기가 더 간단함) :

^(?!keepers/|keepers$)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top