Capítulo 50 - Secuencias especiales, metacaracteres y sets - Expresiones regulares 4 - RegEx

Curso de Python desde cero


Penúltimo capítulo del curso, en el que vamos a ver bastantes cosas que te serán de gran utilidad. Empecemos con los metacaracteres. Estos nos van a servir para poder especificar secuencias especiales y sets.

Metacaracteres

Caracter Descripción Ejemplo
[] Un conjunto de caracteres. "[a-z]"
{} Especifican un número determinado de resultados. En el ejemplo el {2} representa dos letras o. "zo{2}lógico"
() Agrupan patrones.
\ Se utiliza para especificar una secuencia especial. "\A"
| Se utiliza para especificar que encuentre un resultado u otro. "par|impar"
. Caracter comodin, reemplaza cualquier caracter. "programa..ón fác.l"
^ Comienza con lo que le escribas. "^hola"
$ Termina con lo que le escribas. "mundo$"
* Ninguno o más resultados. "es*"
+ Uno o más resultados. "es+"

Veamos unos ejemplos prácticos para que quede esto mucho más claro.

Código

import re
texto = "Bienvenidos a Programación fácil y bienvenidos al curso de Python."
buscar = re.findall("[c-g]", texto)
print(buscar)

Resultado

Devuelve una lista con las coincidencias de caracteres encontrados en el string, en el rango entre la letra c y la g.

['e', 'e', 'd', 'g', 'c', 'f', 'c', 'e', 'e', 'd', 'c', 'd', 'e']

Código

Esta condición es una abreviación del if (if buscar:) es una abreviación de if buscar == True.

import re
texto = "¿Van al zoológico?"
buscar = re.findall("zo{2}lógico", texto)
if buscar:
    print("Hay al menos una coincidencia.")
else:
    print("No hay coincidencias.")
	

Resultado

Dado que si hay una coincidencia, devuelve el print del if.

Hay al menos una coincidencia.

Código

import re
texto = "El futuro es ahora."
buscar = re.findall("pasado|futuro", texto)
if buscar:
    print("Hay al menos una coincidencia.")
else:
    print("No hay coincidencias.")
	

Resultado

Dado que si hay una coincidencia, devuelve el print del if.

Hay al menos una coincidencia.

Código

import re
texto = "La programación es fácil."
buscar = re.findall("progra..ción", texto)
if buscar:
    print("Hay al menos una coincidencia.")
else:
    print("No hay coincidencias.")
	

Resultado

Dado que si hay una coincidencia, devuelve el print del if.

Hay al menos una coincidencia.

Código

import re
texto = "Se acerca el invierno."
buscar = re.findall("^Se acerca", texto)
if buscar:
    print("Hay al menos una coincidencia.")
else:
    print("No hay coincidencias.")
	

Resultado

Dado que si hay una coincidencia, devuelve el print del if.

Hay al menos una coincidencia.

Código

import re
texto = "Se acerca el invierno."
buscar = re.findall("vierno.$", texto)
if buscar:
    print("Hay al menos una coincidencia.")
else:
    print("No hay coincidencias.")
	

Resultado

Dado que si hay una coincidencia, devuelve el print del if.

Hay al menos una coincidencia.

Pasemos a las secuencias especiales.

Metacaracteres

Caracter Descripción Ejemplo
\A Devuelve una coincidencia si los caracteres especificados se encuentran al principio de la cadena. "\ABienvenidos"
\b Devuelve una coincidencia si los caracteres especificados se encuentran al principio o al final de una palabra. "Bienvenidos\b"
\B Devuelve una coincidencia si los caracteres especificados se encuentran entre una palabra, pero no al principio o al final. "veni\B"
\d Devuelve una coincidencia si el string contiene dígitos del 0 al 9. "\d"
\D Devuelve una coincidencia si en el string no hay ningún dígito. "\D"
\s Devuelve una coincidencia si en el string hay al menos un espacio en blanco. "\s"
\S Devuelve una coincidencia si en el string no hay ningún espacio en blanco. "\S"
\w Devuelve una coincidencia si el string contiene cualquier carácter de la a a la z, dígitos del 0 al 9 o la barra baja "_" "mundo$"
\W Devuelve una coincidencia si el string no contiene cualquier carácter de la letra a a la z. "es*"
\Z Devuelve una coincidencia si los carácteres especificados están al final del string. "fácil\Z"

Sets

Los sets básicamente son conjuntos de lo que quieres buscar encerrados entre corchetes, mira algunos ejemplos:

Set (conjunto) Descripción
[$] Todos estos símbolos +, *, $ ()... lo que quieren decir es literalmente ellos mismos, es decir, si pones en el set el símbolo dólar, buscará ese símbolo literalmente en un string.
[abc] Buscará si están estos caracteres en el string.
[e-q] Buscará en el string si hay los caracteres comprendidos entre el rango de letras de la e a la q.
[^abc] Buscará cualquier carácter excepto a, b y c.
[2-7] Busca cualquier dígito entre el rango de 2 y 7.
[c-kC-K] Busca en el string cualquier carácter comprendido en el rango de la letra c a la k independientemente de si es mayúscula o minúscula.

Suscríbete a mi canal de YouTube para apoyarme

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.


Comentarios

Si te quedan dudas sobre el temario, sobre Python, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.