Introducción a las expresiones regulares en Python
Las expresiones regulares son comandos para búsqueda y reemplazo complejos (o simplemente búsqueda). Permiten hacer cosas muy interesantes, pero, desafortunadamente, son bastante difíciles de aprender.
Para comenzar a trabajar con expresiones regulares
en Python, necesitamos importar un módulo especial
re:
import re
El módulo re incluye métodos
destinados a trabajar con expresiones
regulares. Una expresión regular
es un conjunto de comandos y consiste
en dos tipos de caracteres: aquellos que
se denotan a sí mismos y los caracteres de comando,
que se llaman caracteres especiales.
Es mejor comenzar a familiarizarse con las expresiones regulares
usando el ejemplo del método sub, que
se utiliza para reemplazos en una cadena. El primer
parámetro del método acepta qué cambiar,
el segundo - por qué cambiar. En el tercer parámetro
especificamos la cadena en la que necesitamos hacer
el reemplazo. En el cuarto parámetro opcional
establecemos el número de reemplazos. El reemplazo más simple
usando este método se verá así:
res = re.sub('a', '!', 'bab')
print(res) # mostrará 'b!b'
Como habrás notado, en la expresión regular
las letras se denotan a sí mismas. Lo mismo
se aplica a los dígitos. Reemplacemos el dígito
2 por !:
res = re.sub('2', '!', '12abc3')
print(res) # mostrará '1!abc3'
Pero el punto es un carácter especial
y denota cualquier carácter. En el siguiente
ejemplo, busquemos una subcadena con este
patrón: letra 'x', luego cualquier
carácter, luego otra vez la letra 'x':
res = re.sub('x.x', '!', 'xax eee')
print(res) # mostrará '! eee'
Se da una cadena:
txt = 'ahb acb aeb aeeb adcb axeb'
Escriba una expresión regular que encuentre las cadenas
'ahb', 'acb', 'aeb'
según el patrón: letra 'a', cualquier
carácter, letra 'b'.
Se da una cadena:
txt = 'aba aca aea abba adca abea'
Escriba una expresión regular que encuentre las cadenas
'abba', 'adca', 'abea'
según el patrón: letra 'a', 2
caracteres cualesquiera, letra 'a'.
Se da una cadena:
txt = 'aba aca aea abba adca abea'
Escriba una expresión regular que encuentre las cadenas
'abba' y 'abea', sin capturar
'adca'.