Pregunta:
Tengo una expresión regular que .gitignore
en mi .gitignore
similar a:
(Big|Small)(State|City)-[0-9]*\.csv
No funcionó, así que lo probé contra RegexLab.NET .
Luego encontré la página de manual de gitignore que me llevó a aprender que gitignore no usa expresiones regulares, sino fnmatch (3) .
Sin embargo, fnmatch no parece tener un equivalente de los grupos de captura. ¿Es esto factible o necesito dividirlo en tres líneas?
Respuesta:
No hay forma de expresar esta expresión regular con los patrones que admite gitignore. El problema no es la falta de grupos de captura (de hecho, no está utilizando grupos de captura como tales), el problema es la falta de un |
operador. Necesitas dividir esto en cuatro líneas.
BigState-[0-9]*.csv
SmallState-[0-9]*.csv
BigCity-[0-9]*.csv
SmallCity-[0-9]*.csv
Tenga en cuenta que los patrones coinciden, por ejemplo, BigState-4foo.csv
, ya que *
coincide con cualquier secuencia de caracteres. No puede hacerlo mejor que esto con patrones globales, a menos que esté dispuesto a hacer coincidir solo un número fijo de dígitos.