Expresiones regulares en Python simplificadas

Las expresiones regulares (regex) son herramientas potentes que se utilizan para hacer coincidir y manipular cadenas en función de patrones. En Python, el módulo re proporciona soporte para expresiones regulares, lo que le permite realizar operaciones complejas con cadenas de manera eficiente. Este artículo le presentará los conceptos básicos de las expresiones regulares y le mostrará cómo usarlas de manera efectiva en Python.

Introducción al módulo re

Para utilizar expresiones regulares en Python, es necesario importar el módulo re. Este módulo proporciona varias funciones para trabajar con patrones de expresiones regulares:

  • re.match() - Busca una coincidencia solo al comienzo de la cadena.
  • re.search() - Busca una coincidencia en toda la cadena.
  • re.findall() - Encuentra todas las coincidencias en la cadena y las devuelve como una lista.
  • re.sub() - Reemplaza las coincidencias en la cadena con un reemplazo especificado.

Coincidencia de patrones básicos

Las expresiones regulares utilizan caracteres especiales para definir patrones de búsqueda. A continuación se muestran algunos patrones básicos:

  • . - Coincide con cualquier carácter individual excepto nueva línea.
  • \d - Coincide con cualquier dígito (equivalente a [0-9]).
  • \w - Coincide con cualquier carácter alfanumérico (equivalente a [a-zA-Z0-9_]).
  • \s ​​- Coincide con cualquier carácter de espacio en blanco.
  • ^ - Coincide con el inicio de la cadena.
  • $ - Coincide con el final de la cadena.

Ejemplos

A continuación se muestran algunos ejemplos que demuestran la coincidencia de patrones básicos:

import re

# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group())  # Output: Hello

# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group())  # Output: 24

Uso de expresiones regulares con grupos

Los grupos se utilizan para capturar partes del texto coincidente. Se definen mediante paréntesis. Por ejemplo, para extraer partes específicas de un patrón, puede utilizar grupos:

pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'

# Find all matches with groups
match = re.search(pattern, text)
if match:
    print(f'Area Code: {match.group(1)}')  # Output: 123
    print(f'Prefix: {match.group(2)}')     # Output: 45
    print(f'Suffix: {match.group(3)}')     # Output: 6789

Uso de caracteres especiales

Las expresiones regulares incluyen varios caracteres especiales para una coincidencia de patrones más compleja:

  • * - Coincide con 0 o más ocurrencias del elemento anterior.
  • + - Coincide con 1 o más ocurrencias del elemento anterior.
  • ? - Coincide con 0 o 1 ocurrencia del elemento anterior.
  • {n} - Coincide exactamente con n ocurrencias del elemento anterior.
  • | - Coincide con el patrón anterior o posterior.

Ejemplos

A continuación se muestran algunos ejemplos que utilizan caracteres especiales:

# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result)  # Output: ['123', '', '', '456']

# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result)  # Output: ['24', '3']

Reemplazar texto con expresiones regulares

La función re.sub() se utiliza para reemplazar partes de la cadena que coinciden con un patrón:

text = 'The rain in Spain falls mainly in the plain.'

# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text)  # Output: The rain in France falls mainly in the plain.

Conclusión

Las expresiones regulares son una herramienta poderosa para la búsqueda de patrones y la manipulación de texto en Python. Con el módulo re, puede buscar, buscar y reemplazar texto en función de patrones complejos. Si comprende la sintaxis básica y los caracteres especiales, puede aprovechar las expresiones regulares para manejar una amplia gama de tareas de procesamiento de texto de manera eficaz.