Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Dominando Expresiones Regulares en Python: re.match(), re.search(), re.findall() — Ejemplos Prácticos

¿Qué es una Expresión Regular en Python?

Una expresión regular (regex) es una descripción textual compacta que le dice a Python cómo localizar patrones dentro de un string. Las regex son indispensables para extracción de datos, validación y transformación en bases de código, logs, archivos de configuración y proyectos de web scraping.

En Python, el módulo re viene con el intérprete y expone una rica API para compilar patrones, buscar y reemplazar texto. Ya sea filtrando entrada de usuario, parseando logs o scrapeando contenido web, un sólido dominio de los fundamentos de regex ahorra tiempo y reduce bugs.

Conceptos Básicos de Regex

Tabla de Identificadores Comunes

IdentificadorDescripciónEspacio en BlancoEscape Especial
\dCualquier dígito (0-9)\n., +, *, ?, [], $, ^, (, ), {}, |, \
\DNo dígito\s
\sEspacio, tab, salto de línea, etc.\t
\SNo espacio\e
\wAlfanumérico más underscore\r
\WNo alfanumérico (excluyendo underscore)\f
.Cualquier carácter excepto salto de línea—
\bLímite de palabra—
\.Punto literal—
\{x}Exactamente x ocurrencias—

Primeros Pasos con re

import re

El módulo re es parte de la biblioteca estándar de Python y no requiere dependencias externas. Casos de uso comunes incluyen:

Ejemplo 1: \w+ y ^

Usando estos, podemos capturar la primera palabra de un string:

import re
sample = "guru99, la educación es divertida"
result = re.findall(r"^\w+", sample)
print(result) # Output: ['guru99']

Eliminando el + devolvería solo el primer carácter: ["g"].

Ejemplo 2: Dividiendo en Espacios en Blanco con \s

La función re.split() puede dividir un string donde coincida un patrón. Usando \s divide en cualquier carácter de espacio en blanco.

import re
texto = "estamos dividiendo las palabras"
print(re.split(r"\s", texto)) # ['estamos', 'dividiendo', 'las', 'palabras']

Si se omite la barra invertida, s se trata como literal, resultando en divisiones en cada carácter s.

Resumen de Métodos Regex

Usando re.match()

import re
texto = "guru99 es una gran plataforma"
match = re.match(r"^\w+", texto)
print(match.group() if match else "Sin coincidencia") # Output: guru99

Usando re.search()

import re
texto = "Software Testing es divertido"
for patron in ["Software testing", "guru99"]:
    encontrado = re.search(patron, texto, re.IGNORECASE)
    print(f"Buscando '{patron}' en '{texto}' - {'¡encontrado!' if encontrado else 'sin coincidencia'}")

Usando re.findall()

import re
emails = "guru99@google.com, careerguru99@hotmail.com, users@yahoomail.com"
encontrados = re.findall(r"[\w\.-]+@[\w\.-]+", emails)
for e in encontrados:
    print(e)

Flags de Regex

Los flags modifican el comportamiento del patrón. Flags comunes incluyen:

FlagDescripción
re.M (re.MULTILINE)Hace que ^ y $ coincidan con inicio y fin de cada línea.
re.I (re.IGNORECASE)Ignora distinción de mayúsculas/minúsculas.
re.S (re.DOTALL)Hace que punto coincida con saltos de línea.
re.U (re.UNICODE)Aplica clases de caracteres Unicode-aware.
re.L (re.LOCALE)Hace que clases dependan del locale actual.
re.X (re.VERBOSE)Permite espacios en blanco y comentarios en el patrón.

Ejemplo Multilínea

import re
texto = """guru99
careerguru99
selenium"""
print(re.findall(r"^\w", texto)) # ['g']
print(re.findall(r"^\w", texto, re.MULTILINE)) # ['g', 'c', 's']

Compatibilidad con Python 2

Todos los ejemplos arriba están escritos para Python 3. Si debes ejecutarlos bajo Python 2, reemplaza sentencias print() con sintaxis Python 2 y asegura que el módulo re se importe de la misma forma.

Conclusión

Dominar regex en Python te da un toolkit potente para procesamiento de texto:

python

  1. Domine el Método strip() de Python: Guía Completa y Ejemplos Prácticos
  2. Domine str.count() en Python: Cómo Contar Caracteres y Subcadenas con Ejemplos
  3. Domine el Formateo de Strings en Python con format(): Ejemplos Claros
  4. Python len(): Guía Práctica para Medir Longitud de Objetos
  5. Domine el Método String.find() en Python: Sintaxis, Ejemplos y Alternativas
  6. Función round() en Python explicada con ejemplos prácticos
  7. Dominando la función map() de Python: sintaxis, ejemplos y mejores prácticas
  8. Python timeit(): medición de tiempo de ejecución con ejemplos prácticos
  9. Counter de collections en Python: conteo eficiente, actualización y operaciones aritméticas
  10. Python list.count(): Guía Experta con Ejemplos Prácticos
  11. Python list.index(): Cómo Encontrar Posiciones de Elementos con Ejemplos Prácticos