hgignore: help ignoruje wszystkie pliki, ale niektóre
Potrzebuję .plik hgdontignore :-) aby dołączyć określone pliki i wykluczyć wszystko inne w katalogu. Zasadniczo chcę włączyć tylko .pliki jar w konkretnym katalogu i nic więcej. Jak mogę to zrobić? Nie znam się na składni wyrażeń regularnych. Czy Mogę to zrobić za pomocą składni glob? (Wolę to dla czytelności)
Jako przykładowa lokalizacja, powiedzmy, że chcę wykluczyć wszystkie pliki w foo/bar/
z wyjątkiem foo/bar/*.jar
.
2 answers
Aby to zrobić, musisz użyć tego wyrażenia regularnego:
foo/bar/.+?\.(?!jar).+
Explanation
Mówisz mu, co ma ignorować, więc to wyrażenie szuka rzeczy, których ty nie chcesz.
- szukasz dowolnego pliku, którego nazwa (w tym względny katalog) zawiera (foo / bar/)
- następnie poszukujesz znaków poprzedzających kropkę ( .+?\. = = dopasuj jeden lub więcej znaków w dowolnym czasie, dopóki nie osiągniesz znaku kropki)
- ty więc upewnij się, że nie ma zakończenia" jar" (?!jar) (nazywa się to negatywnym spojrzeniem w przyszłość
- W końcu łapiesz zakończenie, które ma (.+)
Wyrażenia regularne są łatwe do zepsucia, więc zdecydowanie sugeruję, abyś otrzymał narzędzie takie jak Regex Buddy , które pomoże Ci je zbudować. Spowoduje to rozbicie wyrażenia regularnego na zwykły angielski, który naprawdę pomaga.
EDIT
Jason S, złapałeś mnie, tęskni za tymi plikami.
To poprawione wyrażenia regularne będą działać dla każdego przykładu, który podałeś:
foo/bar/(?!.*\.jar$).+
Znajduje:
- foo / bar / baz.txt
- foo / bar / baz
- foo / bar / jar
- foo / bar / baz.słoik.txt
- foo / bar / baz.słoik.
- foo / bar / baz.
- foo / bar / baz.txt.
Ale nie znajduje
- foo / bar / baz.jar
Nowe Wyjaśnienie
To mówi szukać plików w " foo / bar/", następnie nie pasują, jeśli jest zero lub więcej znaki, po których następuje ".jar " i wtedy nie będzie więcej znaków ($ oznacza koniec linii), wtedy, jeśli tak nie jest, dopasuj następujące znaki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:15
ODPOWIEDŹ od Michaela jest dobra, ale inną opcją jest po prostu wykluczenie:
foo/bar/**
A następnie ręcznie dodać .pliki jar. Zawsze możesz dodać pliki, które są wykluczone przez regułę Ignoruj i nadpisuje ona ignoruj. Musisz tylko pamiętać, aby dodać wszelkie słoiki, które utworzysz w przyszłości.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-24 01:42:18