Expresiones Regulares en Python

Expresiones Regulares (Regular Expressions)

Propósito: Se utilizan para buscar patrones dentro de cadenas de texto.

Concepto: Define una regla que, si es cumplida por una cadena, se considera que esta "coincide" con el patrón; de lo contrario, la cadena no es válida.

Formato: Las expresiones regulares son representadas como cadenas de texto. Nota: Usar comillas.

import re
re.split(pattern=r'\W+', string='Hola,mundo!')  # Divide la cadena
re.match(pattern=r'^\w+', string='Hola mundo')   # Coincide con un patrón al inicio
patron = re.compile(r'^\w+')
patron.match('Hola mundo').groups()  # Devuelve una tupla de subcadenas coincidentes
patron.match('Hola mundo').group(0)  # Devuelve toda la cadena coincidente
patron.match('Hola mundo').group(1)  # Devuelve la primera subcadena coincidente
# Para evitar la coincidencia codiciosa, añade un ?

El módulo re y las Expresiones Regulares

Evitar Secuencias de Escape: Utiliza el prefijo r en Python para evitar problemas con secuencias de escape.

Coincidir: Usar re.match(pattern, string) para determinar si existe una coincidencia. Retorna un objeto de coincidencia o None.

Dividir Cadenas: Usa re.split() para dividir cadenas basándose en un patrón.

Coincidencia Codiciosa: Por defecto, las expresiones regulares intentan coincidir con tentos caracteres como sea posible.

Agrupaicón: Puedes extraer subcadenas usando paréntesis () para definir grupos.

Sustitución: Con re.sub(patron_viejo, patron_nuevo, cadena) puedes reemplazar partes de una cadena. Ejemplo: re.sub(r'\d', '-', 'prueba123').

Precompilación

Cuando usas expresiones regulares en Python:

  1. Compila la expresión regular, si el patrón es inválido, lanzará un error.
  2. Aplica la expresión compilada a la cadena de texto.
patron = re.compile(r'^\w+')
patron.match('Texto de prueba').groups()

Ejemplos:

  • re.findall(r'\w+', 'Este es un ejemplo') dveuelve todas las palabras como una lista.

Métodos Comunes del Módulo re:

# A continuación, 'texto' se refiere a la cadena original que se desea procesar

re.match(pattern, texto)  # Busca una coincidencia al inicio de la cadena

re.search(pattern, texto, flags=0)  # Busca la primera coincidencia en cualquier parte de la cadena

re.findall(pattern, texto)  # Encuentra todas las coincidencias posibles y retorna una lista

re.sub(pattern_antiguo, pattern_nuevo, texto, count=0, flags=0)  # Reemplaza ocurrencias del patrón antiguo por el nuevo

re.subn(pattern_antiguo, pattern_nuevo, texto)  # Similar a re.sub pero también devuelve el número de sustituciones hechas

re.split(pattern, texto)  # Divide la cadena según el patrón especificado

Etiquetas: Python expresiones-regulares re-module

Publicado el 8-22 07:39