Как составить регулярное выражение, которое соответствует всем файлам в каталоге, кроме файлов с расширением .jar? - PullRequest
0 голосов
/ 31 октября 2010

Предположим, что у нас есть следующая структура каталогов:

/parentdir/
   /childdir/
      child_file1.txt
      child_file2.jar  
   file1.txt
   file2.txt

, поэтому мы получаем следующие полные имена файлов:

/parentdir/file1.txt
/parentdir/file2.txt
/parentdir/childdir/child_file1.txt
/parentdir/childdir/child_file2.jar

Какое регулярное выражение соответствует всем этим файлам, кромепоследний с расширением .jar?

Небольшое уточнение : выражение может содержать строку 'parentdir' и строку '.jar', все другие файлы и каталоги могут иметь любые имена и расширения.

Ответы [ 2 ]

3 голосов
/ 31 октября 2010

Вы можете использовать отрицательные утверждения: /(?<!\.jar)$/

Это будет соответствовать всему, что не заканчивается .jar

1 голос
/ 31 октября 2010

Регулярное выражение с отрицательным утверждением - один из способов, но более распространенное решение для этого в ртутных землях состоит в том, чтобы широко игнорировать (например, просто игнорировать parentdir/), а затем hg add несколько файлов исключений, которые вам не нужныигнорируется.

В svn и cvs вы не можете добавить файл, который находится в вашем списке игнорирования, и если вы делаете, будущие изменения не отслеживаются, но в Mercurial hg add полностью переопределяет игнорировать, так что если вы не будетев будущем появится много новых банок, просто игнорируйте их и добавьте .jar.

...