regular-expression – ¿Cuál es el patrón .gitignore equivalente a la expresión regular (grande | pequeña) (estado | ciudad) – [0-9] * \. Csv

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.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım