Hola querida Python-Desarrollador,
no es raro que tengamos que procesar fechas en nuestro trabajo diario como desarrolladores. Hay muchas librerías que pueden ayudar con esto, pero a veces usar expresiones regulares (regex) es el método más sencillo. En esta entrada del blog, me gustaría presentar diferentes patrones regex para extraer fechas en diferentes formatos.
Este artículo ha sido traducido al alemán y se ha traducido automáticamente a otros idiomas. Nos complacerá recibir sus comentarios al final del artículo.
¿Por qué Regex?
Las expresiones regulares ofrecen una forma rápida y eficaz, Patrones en los textos reconocer. Por ejemplo, si utiliza un formato de fecha en un gran Cantidad de texto Regex suele ser la solución más rápida, aunque Modelos de PNL ofrecen naturalmente oportunidades especiales.
Regex para distintos formatos de fecha
MM/DD/AAAA o MM-DD-AAAA
\b(0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])[-/](19\d\d|20\d\d)\b
DD/MM/AAAA o DD-MM-AAAA
\b(0[1-9]|[12]\d|3[01])[-/](0[1-9]|1[0-2])[-/](19\d\d|20\d\d)\b
AAAA/MM/DD o AAAA-MM-DD
\b(19\d\d|20\d\d)[-/](0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])\b
MM-DD-AA o MM/DD/AA
\b(0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])[-/](\d\d)\b
AAAA-MM-DD (ISO 8601)
\b(19\d\d|20\d\d)-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])\b
Ejemplo de código Python
He aquí un sencillo ejemplo de cómo utilizar estos patrones regex en Python puede utilizar:
import re
def buscar_fechas(texto, patrón):
return re.findall(patrón, texto)
text = "La fecha es 09/02/2023 y la otra fecha es 12-12-2024".
pattern = r"\b(0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])[-/](19\d\d|20\d\d)\b"
fechas = buscar_fechas(texto, patrón)
print("Fechas encontradas:", fechas)
Palabras finales
Reconocer fechas con regex en Python es una habilidad valiosa que puede ahorrarte mucho tiempo. Tenga en cuenta, sin embargo, que estos patrones no están optimizados para meses con menos de 31 días o años bisiestos, ya que regex sólo puede implementar reglas fijas. Para requisitos más complejos, se debe utilizar una biblioteca especializada en fechas como dateutil
o pandas
o el Konfuzio SDK considere.
Espero que esta guía te haya sido útil. Si tienes alguna pregunta o sugerencia, no dudes en dejar un comentario.
Hasta la próxima.