Skip to main content

Expresiones regulares

¿Qué son las expresiones regulares?

Las expresiones regulares son una forma de especificar patrones de texto. Se pueden utilizar para encontrar, reemplazar o dividir texto.

El módulo re

En Python, las expresiones regulares se proporcionan en el módulo re. Este módulo contiene una serie de métodos que se pueden utilizar para trabajar con expresiones regulares.

Métodos en el módulo re

El módulo re proporciona los siguientes métodos principales para trabajar con expresiones regulares:

  • match(): Encuentra la primera coincidencia de una expresión regular en una cadena.
  • search(): Encuentra todas las coincidencias de una expresión regular en una cadena.
  • findall(): Devuelve una lista de todas las coincidencias de una expresión regular en una cadena.
  • sub(): Reemplaza todas las coincidencias de una expresión regular en una cadena con otra cadena.
  • split(): Divide una cadena en una lista de subcadenas según las coincidencias de una expresión regular.

Ejemplos

match()

El método match() devuelve un objeto MatchObject si encuentra una coincidencia de la expresión regular en la cadena. El objeto MatchObject tiene una serie de propiedades que se pueden utilizar para obtener información sobre la coincidencia.

Python

import re

texto = "Hola mundo!"

patron = r"Hola"

resultado = re.match(patron, texto)

if resultado:
print(resultado.group())

Este código imprimirá el siguiente mensaje:

Hola

El método search() devuelve un objeto MatchObject si encuentra una coincidencia de la expresión regular en la cadena. Si no encuentra ninguna coincidencia, devuelve None.

Python

import re

texto = "Hola mundo!"

patron = r"mundo"

resultado = re.search(patron, texto)

if resultado:
print(resultado.group())

Este código imprimirá el siguiente mensaje:

mundo

findall()

El método findall() devuelve una lista de todas las coincidencias de una expresión regular en una cadena.

Python

import re

texto = "Hola mundo! Hola Python!"

patron = r"Hola"

resultado = re.findall(patron, texto)

print(resultado)

Este código imprimirá el siguiente mensaje:

['Hola', 'Hola']

sub()

El método sub() reemplaza todas las coincidencias de una expresión regular en una cadena con otra cadena.

Python

import re

texto = "Hola mundo! Hola Python!"

patron = r"Hola"

reemplazo = "Ciao"

resultado = re.sub(patron, reemplazo, texto)

print(resultado)

Este código imprimirá el siguiente mensaje:

Ciao mundo! Ciao Python!

split()

El método split() divide una cadena en una lista de subcadenas según las coincidencias de una expresión regular.

Python

import re

texto = "Hola mundo! Hola Python!"

patron = r" "

resultado = re.split(patron, texto)

print(resultado)

Este código imprimirá el siguiente mensaje:

['Hola', 'mundo!', 'Hola', 'Python!']

Ejemplos de patrones RegEx

Corchete

El corchete se utiliza para especificar un conjunto de caracteres. Por ejemplo, el patrón [a-z] coincide con cualquier letra minúscula.

Python

import re

texto = "Hola mundo! Hola Python!"

patron = r"[a-z]"

resultado = re.findall(patron, texto)

print(resultado)

Este código imprimirá el siguiente mensaje:

['o', 'l', 'a', 'm', 'u', 'n', 'd', 'o', 'H', 'o', 'l', 'a', 'P', 'y', 't', 'h', 'o', 'n']

Carácter de escape ()

El carácter de escape (\) se utiliza para escapar de un carácter especial. Por ejemplo, el patrón \d coincide con cualquier dígito.

Python

import re

texto = "Hola mundo! 12345"

patron = r"\d"

resultado = re.findall(patron, texto)

print(resultado)

Este código imprimirá el siguiente mensaje:

['1', '2', '3', '4', '5']

El carácter de escape también se puede utilizar para especificar caracteres que no están disponibles en el teclado. Por ejemplo, el patrón \\n coincide con un carácter de nueva línea.

Python

import re

texto = "Hola\nmundo!"

patron = r"\\n"

resultado = re.findall(patron, texto)

print(resultado)

Este código imprimirá el siguiente mensaje:

['\\n']

Aquí hay algunos ejemplos adicionales de patrones RegEx:

  • Una o más veces(+): El cuantificador + indica que una expresión debe aparecer una o más veces. Por ejemplo, el patrón a+ coincide con una o más letras a.

Python

import re

texto = "Holaaa"

patron = r"a+"

resultado = re.findall(patron, texto)

print(resultado)

Este código imprimirá el siguiente mensaje:

['aa', 'aa']
  • Período(.): El período coincide con cualquier carácter. Por ejemplo, el patrón .* coincide con cualquier cadena de caracteres.

Python

import re

texto = "Hola mundo!"

patron = r".*"

resultado = re.findall(patron, texto)

print(resultado)

Este código imprimirá el siguiente mensaje:

['Hola mundo!']
  • Cero o más veces (*): El cuantificador * indica que una expresión puede aparecer cero o más veces. Por ejemplo, el patrón a* coincide con cero o más letras a.

Python

import re

texto = "Hola"

patron = r"a*"

resultado = re.findall(patron, texto)

print(resultado)

Este código imprimirá el siguiente mensaje:

['', 'a', 'aa', 'aaa']
  • Cero o una vez (?): El cuantificador ? indica que una expresión puede aparecer cero o una vez. Por ejemplo, el patrón a? coincide con una o ninguna letra a.

Python

import re

texto = "Hola"

patron = r"a?"

resultado = re.findall(patron, texto)

print(resultado)

Este código imprimirá el siguiente mensaje:

['', 'a']