Solución al Ejercicio: Extraer fecha
📋 Copiar código
import re
def extraer_fecha_dma(texto):
"""
Extrae la primera fecha encontrada en formato DD/MM/AAAA de un texto.
Args:
texto: La cadena de texto de entrada.
Returns:
La primera fecha encontrada en formato DD/MM/AAAA (str), o None si no se encuentra.
"""
patron_fecha = re.compile(r'(\d{2})/(\d{2})/(\d{4})')
coincidencia = patron_fecha.search(texto)
if coincidencia:
return coincidencia.group(0)
else:
return None
# Ejemplos de uso
texto1 = "Hoy es 15/05/2025."
resultado1 = extraer_fecha_dma(texto1)
print(f"Fecha en '{texto1}': {resultado1}")
texto2 = "El evento será el 20/06/2025."
resultado2 = extraer_fecha_dma(texto2)
print(f"Fecha en '{texto2}': {resultado2}")
texto3 = "No hay fecha aquí."
resultado3 = extraer_fecha_dma(texto3)
print(f"Fecha en '{texto3}': {resultado3}")
texto4 = "Una fecha incorrecta 1/5/2025."
resultado4 = extraer_fecha_dma(texto4)
print(f"Fecha en '{texto4}': {resultado4}")
texto5 = "Múltiples fechas: 10/01/2024 y 25/12/2025."
resultado5 = extraer_fecha_dma(texto5)
print(f"Fecha en '{texto5}': {resultado5}")
texto6 = "Formato diferente 2025-05-16."
resultado6 = extraer_fecha_dma(texto6)
print(f"Fecha en '{texto6}': {resultado6}")
texto7 = ""
resultado7 = extraer_fecha_dma(texto7)
print(f"Fecha en '': {resultado7}")
Explicación del Código:
-
import re
:
- Importa el módulo
re
para
trabajar con expresiones regulares.
-
def extraer_fecha_dma(texto):
:
- Define una función llamada
extraer_fecha_dma
que toma una cadena de texto (texto
)
como entrada.
-
patron_fecha = re.compile(r'(\d{2})/(\d{2})/(\d{4})')
:
- Compila una expresión regular para buscar
fechas en el formato DD/MM/AAAA:
(\d{2})
: Busca
exactamente dos dígitos (para el día) y los captura en un grupo.
/
: Busca el carácter
literal '/'.
(\d{2})
: Busca
exactamente dos dígitos (para el mes) y los captura en otro grupo.
/
: Busca el carácter
literal '/'.
(\d{4})
: Busca
exactamente cuatro dígitos (para el año) y los captura en un grupo.
- Los paréntesis
()
crean
grupos de captura para el día, el mes y el año, aunque en este caso
solo estamos interesados en la coincidencia completa.
-
coincidencia =
patron_fecha.search(texto)
:
- Utiliza el método
search()
del objeto de expresión regular para buscar la primera ocurrencia del
patrón de fecha en la cadena texto
.
- Si se encuentra una coincidencia,
coincidencia
será un objeto de coincidencia; de lo contrario,
será None
.
-
if coincidencia:
:
- Verifica si se encontró una coincidencia
(es decir, si
coincidencia
no es None
).
-
return coincidencia.group(0)
:
- Si se encontró una coincidencia,
coincidencia.group(0)
devuelve la cadena completa que coincidió
con el patrón (en este caso, la fecha en formato DD/MM/AAAA).
-
else:
:
- Si no se encontró ninguna coincidencia.
-
return None
:
- Devuelve
None
para indicar
que no se encontró ninguna fecha en el formato especificado.
Ejemplos de Uso:
Los ejemplos muestran cómo la función extrae la
primera fecha que encuentra en el formato DD/MM/AAAA. Si hay varias fechas o la
fecha está en un formato diferente, no se extraerá (a menos que la primera
coincida con el formato esperado).