Expresiones regulares en Python: Guía completa para principiantes

Expresiones regulares en Python: Guía completa para principiantes

Las expresiones regulares, a menudo conocidas como regex o regular expression python, son herramientas poderosas para buscar, coincidir y manipular texto. En esencia, una regular expression es una secuencia de caracteres especiales que define un patrón de búsqueda. En Python, el módulo re facilita la interacción con expresiones regulares.

Introducción a las expresiones regulares

Imagine que necesita encontrar todas las direcciones de correo electrónico en un texto extenso. O tal vez quiere reemplazar todas las fechas en un archivo con un formato específico. Las expresiones regulares le permiten realizar estas tareas de manera eficiente y precisa.

Un ejemplo simple de una regular expression es d+, que busca uno o más dígitos. Al aplicarlo al texto «El número de teléfono es 1234567890», la expresión regular coincidirá con la secuencia «1234567890».

El módulo re en Python

El módulo re de Python proporciona funciones para trabajar con expresiones regulares. Una función clave es re.findall(), que busca todas las coincidencias de una expresión regular en una cadena de texto y devuelve una lista de resultados.

Para evitar interpretaciones erróneas de caracteres especiales, es importante utilizar cadenas crudas (r'...') al definir expresiones regulares en Python. Por ejemplo, r'd+' se interpreta como una regex literal, mientras que 'd+' podría interpretarse como un escape de carácter.

Metacaracteres especiales en expresiones regulares

Las expresiones regulares utilizan metacaracteres especiales para representar patrones de texto. Algunos de los metacaracteres más comunes incluyen:

  • .: Coincide con cualquier carácter, excepto un salto de línea.
  • d: Coincide con cualquier dígito.
  • w: Coincide con cualquier caracter alfanumérico (letras, números y guion bajo).
  • s: Coincide con cualquier espacio en blanco (espacio, tabulación, salto de línea).
  • *: Coincide con cero o más repeticiones del carácter anterior.
  • +: Coincide con una o más repeticiones del carácter anterior.
  • ?: Coincide con cero o una repetición del carácter anterior.
  • []: Define un conjunto de caracteres.
  • ^: Coincide con el inicio de la línea.
  • $: Coincide con el final de la línea.
LEER:  Diagramas UML: Guía Completa con Ejemplos - Dominar UML

Funciones principales del módulo re

El módulo re ofrece varias funciones esenciales para trabajar con expresiones regulares en Python.

re.match()

La función re.match() intenta encontrar una coincidencia desde el principio de la cadena de texto. Si la coincidencia se encuentra, devuelve un objeto coincidencia; de lo contrario, devuelve None.

«`python
import re

texto = «El número de teléfono es 1234567890»
patron = r’d+’
coincidencia = re.match(patron, texto)
if coincidencia:
print(«Coincidencia encontrada:», coincidencia.group(0))
else:
print(«No se encontró coincidencia»)
«`

re.search()

La función re.search() busca la primera coincidencia de la regex en la cadena de texto. Si se encuentra una coincidencia, devuelve un objeto coincidencia; de lo contrario, devuelve None.

«`python
import re

texto = «El número de teléfono es 1234567890»
patron = r’d+’
coincidencia = re.search(patron, texto)
if coincidencia:
print(«Coincidencia encontrada:», coincidencia.group(0))
else:
print(«No se encontró coincidencia»)
«`

re.findall()

La función re.findall() busca todas las coincidencias de la regex en la cadena de texto y devuelve una lista de las coincidencias.

«`python
import re

texto = «El número de teléfono es 1234567890 y el código postal es 12345»
patron = r’d+’
coincidencias = re.findall(patron, texto)
print(«Coincidencias encontradas:», coincidencias)
«`

re.sub()

La función re.sub() reemplaza todas las coincidencias de la regex en la cadena de texto con una nueva cadena.

«`python
import re

texto = «El número de teléfono es 1234567890»
patron = r’d+’
textoreemplazado = re.sub(patron, «XXXX», texto)
print(«Texto reemplazado:», texto
reemplazado)
«`

re.compile()

La función re.compile() compila una regex en un objeto patrón que se puede utilizar para ejecutar varias búsquedas y reemplazos. Esto puede mejorar el rendimiento cuando se trabaja con expresiones regulares complejas o se busca en un gran volumen de datos.

LEER:  ¡Qmake Not Found! Guía Completa para Instalar y Resolver el Error en Linux

«`python
import re

patron = re.compile(r’d+’)
texto = «El número de teléfono es 1234567890»
coincidencia = patron.search(texto)
if coincidencia:
print(«Coincidencia encontrada:», coincidencia.group(0))
else:
print(«No se encontró coincidencia»)
«`

Casos de uso específicos

Las expresiones regulares tienen aplicaciones diversas en varios dominios. Algunos ejemplos comunes incluyen:

Validación de datos

Las expresiones regulares se utilizan ampliamente para validar datos, como direcciones de correo electrónico, números de teléfono, fechas y códigos postales. Por ejemplo, una regex para validar una dirección de correo electrónico podría ser: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$.

Extracción de información

Las expresiones regulares pueden extraer información específica de un texto. Por ejemplo, una regex para extraer nombres de personas de un texto podría ser: [A-Z][a-z]+.

Búsqueda y reemplazo

Las expresiones regulares son ideales para buscar y reemplazar patrones específicos en texto. Por ejemplo, una regex para reemplazar todas las ocurrencias de «www.» con «http://» en un texto podría ser: r'www.'.

Modificadores de expresiones regulares

Los modificadores se utilizan para modificar el comportamiento de las expresiones regulares. Algunos modificadores comunes incluyen:

  • re.I: Ignora la distinción entre mayúsculas y minúsculas.
  • re.M: Trata la cadena de texto como varias líneas.
  • re.S: Trata la cadena de texto como una sola línea (ignora los saltos de línea).

Patrones comunes de expresiones regulares

| Patrón | Descripción |
|—|—|
| d | Cualquier dígito |
| w | Cualquier caracter alfanumérico |
| s | Cualquier espacio en blanco |
| . | Cualquier carácter (excepto salto de línea) |
| * | Cero o más repeticiones |
| + | Una o más repeticiones |
| ? | Cero o una repetición |
| [] | Conjunto de caracteres |
| ^ | Inicio de línea |
| $ | Final de línea |

Conclusión

Las expresiones regulares en Python son una herramienta indispensable para el procesamiento de texto. Desde la validación de datos hasta la extracción de información, las regex proporcionan una forma eficiente y flexible de trabajar con patrones de texto. Al comprender los conceptos básicos, los metacaracteres especiales y las funciones del módulo re, podrá aplicar expresiones regulares en su trabajo con Python de manera efectiva.

LEER:  HTML - Enlaces de Correo Electrónico: Una Guía Completa