19 - Expresiones regulares: el módulo “re” y la función “fullmatch”
Lección 19 del curso Python Nivel Intermedio.
Tabla de contenido
Introducción
En la lección anterior vimos una introducción a las Expresiones Regulares en Python, que nos permitirán realizar el procesamiento avanzado de strings.
En esta lección vamos a comenzar a ver la versatilidad que tienen las Expresiones Regulares en Python, así que hablaremos del módulo “re” y en particular veremos en detalle la función fullmatch
.
Suscríbete y accede al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online
El módulo re
Para usar expresiones regulares en Python debemos importar el módulo re
, que a su vez contiene múltiples funciones entre las que se encuentra fullmatch
, una de las más usadas. Veamos en detalle la utilidad de esta función.
La función fullmatch
fullmatch
es una de las funciones más usadas en el módulo re
. Permite verificar si hay coincidencias entre un patrón (primer argumento) es idéntico a un string (segundo argumento).
Como el primer argumento es un patrón existen muchísimas formas de realizar búsquedas.
Coincidencias con caracteres literales
Es el uso más sencillo: el patrón es simplemente una secuencia de caracteres, y fullmatch
verifica la coincidencia entre el string y el patrón.
Si el patrón es idéntico al string fullmatch
devuelve un objeto tipo re.Match
, de lo contrario devuelve un objeto tipo None
.
Meta-caracteres, clases de caracteres y cuantificadores
Pero lo interesante de las Expresiones Regulares no es que el patrón sea idéntico al sub-string que queremos buscar, sino que sea más versátil. Esta versatilidad la agregan los meta-caracteres, las clases de caracteres y los cuantificadores:
Meta-caracteres
Son símbolos especiales que permiten definir criterios de búsqueda o formas de manipular el texto. Estos son: []
, {}
, ()
, \
, *
, +
, ^
, $
, ?
, .
y |
Clases de caracteres
En un string podemos tener caracteres que representen números, espacios o letras. Dependiendo de la búsqueda que hagamos, podemos combinar el meta-caracter ’’ con una de las clases de caracteres para por ejemplo buscar sólo números, espacios o letras.
Estas clases de caracteres son:
\d
: cualquier dígito entre 0 y 9\D
: cualquier caracter que no es un dígito\s
: cualquier caracter que represente un espacio en blanco (espacios, tabulaciones y cambios de línea)\S
: cualquier caracter que no represente un espacio en blanco- \w
: cualquier caracter alfanumérico (letras mayúsculas o minúsculas, números y
_`) \W
: cualquier caracter que no sea alfanumérico
Cuantificadores
En lugar de escribir \d\d\d\d\d
para buscar una secuencia de cinco caracteres, podemos escribir \d{5}
para indicar la cantidad de dígitos que queremos buscar. La porción {5}
se conoce como un cuantificador.
Clases de caracteres personalizadas
Con el meta-caracter []
podemos definir clases de caracteres personalizadas.
Además, el *
verifica cero o más coincidencias según la regla que aparezca a su izquierda. Así, al escribir '[a-z]*'
estamos indicando a fullmatch
que busque cero o más coincidencias de letras minúsculas.
Si al comienzo de una clase de caracter personalizada colocamos el meta-caracter ^
la búsqueda será realizada sobre cualquier caracter que no esté en dicha clase.
Otros cuantificadores
?
convierte el caracter inmediatamente anterior en opcional al momento de verificar coincidencias.- Podemos verificar al menos n ocurrencias usando
'{n,}'
- O también podemos verificar si hay entre m y n ocurrencias usando
'{m,n}'
Recuerda suscribirte para acceder al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online
Conclusión
Muy bien, ya empezamos a tener un panorama claro del potencial de las expresiones regulares, y con fullmatch
ya sabemos cómo encontrar coincidencias entre un string y el patrón de búsqueda.
Ahora el siguiente paso es ver cómo podemos reemplazar porciones de texto o partir un string con base en un patrón de búsqueda. Así que en la siguiente lección hablaremos de las funciones sub
y split
.