Python - Librería RE
#####################################################
#30 ejemplos en Python utilizando la librería re:
#1. Buscar una cadena en un texto ignorando ma0..yúsculas y minúsculas:
import re
texto = "Hola, ¿cómo estás?"
patron = "ESTÁS"
resultado = re.search(patron, texto, re.IGNORECASE)
print(resultado)
#2. Buscar una cadena al final de un texto:
import re
texto = "Hola, ¿cómo estás?"
patron = "estás{{SSR}}quot;
resultado = re.search(patron, texto)
print(resultado)
#3. Buscar una cadena que contenga solo letras:
import re
texto = "abc123"
patron = "^[a-zA-Z]+{{SSR}}quot;
resultado = re.search(patron, texto)
print(resultado)
#4. Buscar una cadena que contenga solo números:
import re
texto = "abc123"
patron = "^[0-9]+{{SSR}}quot;
resultado = re.search(patron, texto)
print(resultado)
#5. Buscar una cadena en un texto:
import re
texto = "Hola, ¿cómo estás?"
patron = "estás"
resultado = re.search(patron, texto)
print(resultado.group())
#6. Buscar una cadena al principio de un texto:
import re
texto = "Hola, ¿cómo estás?"
patron = "^Hola"
resultado = re.search(patron, texto)
print(resultado.group())
#7. Buscar una cadena que empiece por una letra y termine en un número:
import re
texto = "abc123"
patron = "^[a-zA-Z]+[0-9]+{{SSR}}quot;
resultado = re.search(patron, texto)
print(resultado.group())
#8. Buscar una cadena que contenga solo letras y números:
import re
texto = "abc123"
patron = "^[a-zA-Z0-9]+{{SSR}}quot;
resultado = re.search(patron, texto)
print(resultado.group())
#9. Buscar una cadena que contenga al menos una letra y un número:
import re
texto = "abc123"
patron = "(?=.*[a-zA-Z])(?=.*[0-9]).+"
resultado = re.search(patron, texto)
print(resultado.group())
#10. Buscar una cadena que contenga al menos una letra mayúscula, una letra minúscula y un número:
import re
texto = "Abc123"
patron = "(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).+"
resultado = re.search(patron, texto)
print(resultado.group())
#11. Buscar una cadena que contenga al menos una letra mayúscula, una letra minúscula, un número y un carácter especial:
import re
texto = "Abc123!"
patron = "(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()_+]).+"
resultado = re.search(patron, texto)
print(resultado.group())
#12. Buscar una cadena que contenga un número de teléfono en formato (123) 456-7890:
import re
texto = "Mi número de teléfono es (123) 456-7890"
patron = "\(\d{3}\) \d{3}-\d{4}"
resultado = re.search(patron, texto)
print(resultado.group())
#13. Buscar una cadena que contenga una dirección de correo electrónico:
import re
texto = "Mi correo electrónico es ejemplo@gmail.com"
patron = "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"
resultado = re.search(patron, texto)
print(resultado.group())
#14. Buscar una cadena que contenga una dirección de URL:
import re
texto = "Visita mi sitio web en https://www.ejemplo.com"
patron = "(?Phttps?://[^\s]+)"
resultado = re.search(patron, texto)
print(resultado.group("url"))
#15. Buscar una cadena que contenga una fecha en formato dd/mm/aaaa:
import re
texto = "La fecha de hoy es 30/05/2023"
patron = "\d{2}/\d{2}/\d{4}"
resultado = re.search(patron, texto)
print(resultado.group())
#16. Buscar una cadena que contenga una hora en formato hh:mm:ss...
import re
texto = "La hora actual es 12:30:45"
patron = "\d{2}:\d{2}:\d{2}"
resultado = re.search(patron, texto)
print(resultado.group())
#17. Buscar una cadena que contenga una dirección IP:
import re
texto = "Mi dirección IP es 192.168.1.1"
patron = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
resultado = re.search(patron, texto)
print(resultado.group())
#18. Buscar una cadena que contenga un número decimal:
import re
texto = "El número es 3.14"
patron = "\d+\.\d+"
resultado = re.search(patron, texto)
print(resultado.group())
#19. Buscar una cadena que contenga un número entero:
import re
texto = "El número es 42"
patron = "\d+"
resultado = re.search(patron, texto)
print(resultado.group())
#20. Buscar una cadena que contenga una palabra que empiece por "a" y termine por "o":
import re
texto = "El animal es un gato"
patron = "\ba\w*o\b"
resultado = re.search(patron, texto)
print(resultado.group())
#21. Buscar una cadena que contenga una palabra que empiece por "a" y tenga una longitud de al menos 5 caracteres:
import re
texto = "El animal es un avestruz"
patron = "\ba\w{4,}\b"
resultado = re.search(patron, texto)
print(resultado.group())
#22. Buscar una cadena que contenga una palabra que empiece por "a" y tenga una longitud de entre 3 y 5 caracteres:
import re
texto = "El animal es un ave"
patron = "\ba\w{2,4}\b"
resultado = re.search(patron, texto)
print(resultado.group())
#23. Buscar una cadena que contenga una palabra que empiece por "a" y tenga una longitud de al menos 3 caracteres, pero no más de 5 caracteres:
import re
texto = "El animal es un avión"
patron = "\ba\w{2,4}\b"
resultado = re.search(patron, texto)
print(resultado.group())
#24. Buscar una cadena que contenga una palabra que empiece por "a" y tenga una longitud de al menos 3 caracteres, pero no más de 5 caracteres, ignorando mayúsculas y minúsculas:
import re
texto = "El animal es un Avión"
patron = "\ba\w{2,4}\b"
resultado = re.search(patron, texto, re.IGNORECASE)
print(resultado.group())
#25. Buscar una cadena que contenga una palabra que empiece por "a" y tenga una longitud de al menos 3 caracteres, pero no más de 5 caracteres, en una lista de palabras:
import re
palabras = ["animal", "ave", "avión"]
patron = "\ba\w{2,4}\b"
for palabra in palabras:
resultado = re.search(patron, palabra)
if resultado:
print(resultado.group())
#26. Buscar una cadena que contenga una palabra que empiece por "a" y tenga una longitud de al menos 3 caracteres, pero no más de 5 caracteres, en un archivo de texto:
import re
with open("archivo.txt", "r") as archivo:
texto = archivo.read()
patron = "\ba\w{2,4}\b"
resultado = re.search(patron, texto)
print(resultado.group())
#27. Buscar todas las ocurrencias de una cadena en un texto:
import re
texto = "La casa es roja y la puerta es roja"
patron = "roja"
resultados = re.findall(patron, texto)
print(resultados)
#28. Reemplazar una cadena por otra en un texto:
import re
texto = "La casa es roja y la puerta es roja"
patron = "roja"
reemplazo = "verde"
resultado = re.sub(patron, reemplazo, texto)
print(resultado)
#29. Dividir un texto en una lista de palabras:
import re
texto = "La casa es roja y la puerta es roja"
patron = "\W+"
palabras = re.split(patron, texto)
print(palabras)
#30. Validar si una cadena es un correo electrónico válido:
import re
correo = "usuario@dominio.com"
patron = "\w+@\w+\.\w+"
resultado = re.match(patron, correo)
if resultado:
print("Correo electrónico válido")
else:
print("Correo electrónico inválido")
#31. Validar si una cadena es un número de teléfono válido en formato internacional:
import re
telefono = "+1-555-555-5555"
patron = "\+\d{1,3}-\d{3}-\d{3}-\d{4}"
resultado = re.match(patron, telefono)
if resultado:
print("Número de teléfono válido")
else:
print("Número de teléfono inválido")
#32. Validar si una cadena es una dirección postal válida en Estados Unidos:
import re
direccion = "123 Main St, Anytown, CA 12345"
patron = "\d{1,5}\s\w+\s\w+,\s\w+,\s\w+\s\d{5}"
resultado = re.match(patron, direccion)
if resultado:
print("Dirección postal válida")
else:
print("Dirección postal inválida")
#33. Validar si una cadena es una dirección IP válida:
import re
ip = "192.168.1.1"
patron = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
resultado = re.match(patron, ip)
if resultado:
print("Dirección IP válida")
else:
print("Dirección IP inválida")
#34. La función compile compila una expresión regular
#en un objeto de patrón que puede ser utilizado para buscar texto.
import re
patron = re.compile(r'\d+')
texto = 'La casa tiene 3 habitaciones y 2 baños.'
resultado = patron.findall(texto)
print(resultado)
#35. La función purge elimina todos los patrones compilados almacenados en caché.
import re
re.purge()
#36. La función compile también puede tomar argumentos opcionales
#para controlar el comportamiento de la búsqueda, como IGNORECASE
#para ignorar mayúsculas y minúsculas.
import re
patron = re.compile(r'casa', re.IGNORECASE)
texto = 'La casa tiene 3 habitaciones y 2 baños.'
resultado = patron.findall(texto)
print(resultado)
#37. La función compile también puede tomar argumentos opcionales
#para controlar el comportamiento de la búsqueda,
#como MULTILINE para buscar en varias líneas.
import re
patron = re.compile(r'^La', re.MULTILINE)
texto = 'La casa tiene 3 habitaciones.\nLa cocina es grande.'
resultado = patron.findall(texto)
print(resultado)
#38. La función compile también puede tomar argumentos opcionales
#para controlar el comportamiento de la búsqueda, como DOTALL
#para permitir que '.' coincida con cualquier carácter,
#incluso saltos de línea.
import re
patron = re.compile(r'.+', re.DOTALL)
texto = 'La casa tiene\n3 habitaciones\ny 2 baños.'
resultado = patron.findall(texto)
print(resultado)
#39. La función purge también puede tomar un argumento opcional
#para eliminar solo los patrones compilados que coinciden con una expresión regular.
import re
re.compile(r'\d+')
re.compile(r'[A-Z]')
re.purge(r'\d+')
#40. Utilizando la función `compile` para buscar una palabra específica en un texto.
import re
patron = re.compile(r'\bPython\b')
texto = 'Me gusta programar en Python.'
resultado = patron.search(texto)
if resultado:
print('Se encontró la palabra "Python" en el texto.')
else:
print('No se encontró la palabra "Python" en el texto.')
#41: Utilizando la función `compile` para buscar
# una dirección de correo electrónico en un texto.
import re
patron = re.compile(r'\b[\w.-]+@[\w.-]+\.\w{2,}\b')
texto = 'Mi dirección de correo electrónico es ejemplo@gmail.com.'
resultado = patron.search(texto)
if resultado:
print('Se encontró una dirección de correo electrónico en el texto.')
else:
print('No se encontró una dirección de correo electrónico en el texto.')
#42: Utilizando la función `compile` para buscar números de teléfono en un texto.
import re
patron = re.compile(r'\b\d{3}-\d{3}-\d{4}\b')
texto = 'Mi número de teléfono es 123-456-7890.'
resultado = patron.search(texto)
if resultado:
print('Se encontró un número de teléfono en el texto.')
else:
print('No se encontró un número de teléfono en el texto.')
#43: Utilizando la función `compile` para buscar fechas en un texto.
import re
patron = re.compile(r'\b\d{1,2}/\d{1,2}/\d{4}\b')
texto = 'La fecha de hoy es 6/7/2023.'
resultado = patron.search(texto)
if resultado:
print('Se encontró una fecha en el texto.')
else:
print('No se encontró una fecha en el texto.')
#44: Utilizando la función `compile` para buscar palabras
#que empiezan con una letra mayúscula en un texto.
import re
patron = re.compile(r'\b[A-Z]\w*\b')
texto = 'El lenguaje de programación Python es muy popular.'
resultado = patron.findall(texto)
if resultado:
print('Se encontraron palabras que empiezan con una letra mayúscula en el texto.')
else:
print('No se encontraron palabras que empiezan con una letra mayúscula en el texto.')
#45: Utilizando la función `purge` para limpiar
#la caché de expresiones regulares compiladas.
import re
patron1 = re.compile(r'\d+')
patron2 = re.compile(r'\w+')
re.purge() # Limpia la caché de expresiones regulares compiladas
texto = 'La casa tiene 3 habitaciones y 2 baños.'
resultado1 = patron1.findall(texto)
resultado2 = patron2.findall(texto)
print(resultado1) # Salida: ['3', '2']
print(resultado2) # Salida: ['La', 'casa', 'tiene', '3', 'habitaciones', 'y', '2', 'baños']