Módulo re: search, match, findall, sub
re.search(), re.match(), re.findall(), re.sub() y re.compile() para mejorar el rendimiento.
Módulo re: search, match, findall, sub es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
El módulo re
Python ofrece expresiones regulares mediante el módulo integrado re. Sus funciones principales son search, match, findall y sub.
Saber cuál elegir es la mitad del trabajo.
import re # always import it firstre.search — buscar en cualquier posición
re.search(pattern, text) examina la cadena completa en busca de la primera coincidencia y devuelve un objeto Match, o None si no hay ninguna coincidencia.
import re
m = re.search("\d+", "order 42 shipped")
if m:
print(m.group()) # "42"
print(m.start()) # 6re.match — anclado al inicio
re.match solo busca coincidencias al principio de la cadena. Si el patrón no está en la posición 0, devuelve None aunque aparezca más adelante.
import re
print(re.match("\d+", "42 items")) # matches "42"
print(re.match("\d+", "items 42")) # Nonesearch frente a match
La diferencia principal es la siguiente:
match— el patrón debe comenzar en el índice 0search— el patrón puede aparecer en cualquier posición
La mayoría de las veces querrá utilizar search. Utilice match solo cuando necesite comprobar específicamente un prefijo.
re.findall — obtener todas las coincidencias
re.findall devuelve una lista de todas las coincidencias no superpuestas como cadenas (no como objetos Match). Es ideal para tareas de extracción.
import re
emails = re.findall("\w+@\w+\.\w+", "a@x.com and b@y.org")
print(emails) # ["a@x.com", "b@y.org"]findall con grupos
Si su patrón contiene grupos de captura, findall devuelve las partes capturadas en lugar de la coincidencia completa, algo que suele sorprender.
Aquí, cada tupla contiene el código de área y el resto.
import re
print(re.findall("(\d{3})-(\d{4})", "555-1234 and 999-8765"))
# [("555", "1234"), ("999", "8765")]re.finditer — objetos Match
Cuando necesite las posiciones o los grupos de cada coincidencia, utilice re.finditer. Esta función produce objetos Match que puede recorrer de forma diferida.
import re
for m in re.finditer("\d+", "a1 b22 c333"):
print(m.group(), "at", m.start())re.sub — buscar y reemplazar
re.sub(pattern, replacement, text) reemplaza cada coincidencia por la cadena de reemplazo y devuelve una cadena nueva.
Es fundamental para limpiar texto: enmascarar, normalizar y eliminar.
import re
clean = re.sub("\d+", "#", "Room 101 and 202")
print(clean) # "Room # and #"sub con referencias inversas y funciones
El reemplazo puede hacer referencia a grupos capturados mediante \1 o puede ser una función para aplicar lógica dinámica.
import re
# Swap "first last" -> "last, first"
print(re.sub("(\w+) (\w+)", "\\2, \\1", "Ada Lovelace"))
# Function replacement: double each number
print(re.sub("\d+", lambda m: str(int(m.group()) * 2), "a1 b2"))re.compile — reutilizar patrones
Cuando utiliza un patrón muchas veces (por ejemplo, en un bucle), re.compile lo construye una vez como un objeto de patrón reutilizable. Esto es más rápido y facilita la lectura.
import re
num = re.compile("\d+")
for line in ["a1", "b22", "c333"]:
print(num.findall(line))Indicadores útiles
Los indicadores cambian el comportamiento de las coincidencias:
re.IGNORECASE— no distingue entre mayúsculas y minúsculasre.MULTILINE—^/$coinciden con cada líneare.DOTALL—.también coincide con saltos de línea
import re
print(re.findall("cat", "Cat CAT cat", re.IGNORECASE))
# ["Cat", "CAT", "cat"]Comprobación rápida: search frente a findall
Necesita una lista de todos los números de teléfono que aparecen en cualquier posición de un documento.
Resumen: el módulo re
Ahora conoce las funciones principales de regex:
re.search— primera coincidencia en cualquier posición (objeto Match)re.match— coincidencia solo al principiore.findall— lista de todas las coincidencias (los grupos cambian el resultado)re.finditer— objetos Match con posicionesre.sub— reemplaza coincidencias, con referencias inversas o una funciónre.compilee indicadores para reutilizar y controlar los patrones
A continuación: grupos de captura y grupos con nombre.
Preguntas frecuentes
¿La lección «Módulo re: search, match, findall, sub» es gratis?
Sí — el texto completo de «Módulo re: search, match, findall, sub» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Módulo re: search, match, findall, sub»?
re.search(), re.match(), re.findall(), re.sub() y re.compile() para mejorar el rendimiento. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Módulo re: search, match, findall, sub»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Patrones de regex y clases de caracteres
- Módulo re: search, match, findall, sub
- Grupos de captura y grupos con nombre
- Limpieza de texto para IA con regex