GOOGLE ADS

viernes, 15 de abril de 2022

Regex: coincide con nulo o espacio desde el inicio como opcional

Quiero hacer coincidir nulo o espacio como opcional desde el comienzo de la línea. La línea es la siguiente:

 Date Description Amount

null 12/05/2016 Asian Paints 2,150.65
13/05/2016 Nerolac GEB 5.86 22,512.65 Cr
14/05/2016 Hydra 12,412

La expresión regular que utilicé es:

regex_null = re.compile(r"^(?:null)?\s+(\d{2}/\d{2}/\d{4})\s+(.*?)\s+(\d[\d,]*\.\d{2}\s+(?:Cr)?)$", re.M)

Y lo que tengo es:

 null 12/05/2016 Asian Paints 2,150.65
13/05/2016 Nerolac GEB 5.86 22,512.65 Cr

Entonces el nulo no es opcional. Actualmente se considera obligatorio. ¿Puedes ayudarme con esto?


Solución del problema

Puede usar esta expresión regular con grupos opcionales:

^\s*(?:null)?\s*(\d{2}/\d{2}/\d{4})\s+(.*?)\s+(\d[\d,]*(?:\.\d{2})?(\s+Cr)?)$

Demostración RegEx

Detalles RegEx:


  • ^\s*(?:null)?\s*: Coincidencia opcional nullcon 0 o más espacios en blanco en ambos lados

  • (\d{2}/\d{2}/\d{4}): Cadena de fecha de coincidencia en el grupo de captura #1

  • \s+: Partido 1+ espacios en blanco

  • (.*?): Matemáticas 0 o más caracteres en el grupo de captura #2

  • \s+: Partido 1+ espacios en blanco

  • (\d[\d,]*: Coincide con un dígito seguido de 0 o más dígitos/caracteres de coma

  • (?:\.\d{2})?: Coincide con puntos y dígitos opcionales

  • (\s+Cr)?): Coincide con espacios en blanco opcionales 1+ seguidos deCr

  • $: Fin

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...