Normal ifadenin .gitignore desen eşdeğeri nedir (Büyük | Küçük) (Eyalet | Şehir) - [0-9] * \. Csv


23

Benim .gitignorebenzer sıkışmış bir regex var :

(Big|Small)(State|City)-[0-9]*\.csv

Bu işe yaramadı, bu yüzden RegexLab.NET karşı test .

Daha sonra gitignore'un regexes değil, fnmatch (3) kullanmasını öğrenmeme neden olan gitignore man sayfasını buldum .

Ancak, fnmatch yakalama gruplarına eşdeğer görünmüyor. Bu uygulanabilir mi yoksa bunu üç satıra mı ayırmam gerekiyor?

Yanıtlar:


26

Bu normal ifadeyi gitignore'un desteklediği kalıplarla ifade etmenin bir yolu yoktur. Sorun, yakalama gruplarının eksikliği değil (aslında, yakalama gruplarını kullanmıyorsanız), sorun bir |operatörün olmamasıdır . Bunu dört satıra bölmelisin.

BigState-[0-9]*.csv
SmallState-[0-9]*.csv
BigCity-[0-9]*.csv
SmallCity-[0-9]*.csv

Desenlerin BigState-4foo.csv, örneğin *herhangi bir karakter dizisiyle eşleştiği için eşleştiğine dikkat edin. Sadece sabit sayıda rakamla eşleşmek istemiyorsanız, glob desenleriyle bundan daha iyisini yapamazsınız.


2
Sonunda söylediklerini yaptım. Ayrıca * işaret ettiğiniz için teşekkürler önceki ifadeyi tekrarlamaz, ancak bir süre kartıdır. Benim ihtiyaçları için yeterince iyi, ama daha iyisini umuyordum.
Justin Dearing
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.