Qual è l'equivalente del modello .gitignore del regex (Big | Small) (State | City) - [0-9] * \. Csv


23

Ho una regex che ho bloccato nel mio .gitignoresimile a:

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

Non ha funzionato, quindi l'ho testato su RegexLab.NET .

Ho quindi trovato la pagina man di gitignore che mi ha portato a sapere che gitignore non usa regex, ma piuttosto fnmatch (3) .

Tuttavia, sembra che non abbia un equivalente dei gruppi di acquisizione. È fattibile o devo dividerlo in tre righe?

Risposte:


26

Non c'è modo di esprimere questa espressione regolare con gli schemi supportati da Gitignore. Il problema non è la mancanza di gruppi di acquisizione (in effetti, non si stanno utilizzando gruppi di acquisizione in quanto tali), il problema è la mancanza di un |operatore. Devi dividerlo in quattro righe.

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

Si noti che i motivi corrispondono ad esempio BigState-4foo.csv, poiché *corrisponde a qualsiasi sequenza di caratteri. Non puoi fare di meglio con i modelli glob, a meno che tu non sia disposto a abbinare solo un numero fisso di cifre.


2
Ho finito per fare esattamente quello che hai detto. Inoltre, grazie per aver sottolineato * non ripete l'espressione precedente, ma è una carta while. È abbastanza buono per le mie esigenze, ma speravo in meglio.
Justin Dearing il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.