Curso de Python desde cero

Los metacaracteres y las secuencias especiales de Python

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

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 de Python. Estos nos van a servir para poder especificar secuencias especiales y sets.

Metacaracteres de Python

Carácter 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"
. Carácter comodín, reemplaza cualquier carácter. "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.

import re

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

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']

Esta condición es una abreviación del if (if buscar:), el equivalente es: 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.")

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

Hay al menos una coincidencia.
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.")

Si hay una coincidencia, devuelve el print() del if.

Hay al menos una coincidencia.
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.")

Si hay una coincidencia, devuelve el print() del if.

Hay al menos una coincidencia.
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.")

Si hay una coincidencia, devuelve el print() del if.

Hay al menos una coincidencia.
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.")

Si hay una coincidencia, devuelve el print() del if.

Hay al menos una coincidencia.

Pasemos a las secuencias especiales.

Secuencias especiales de Python

Carácter 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 caracteres especificados están al final del string. "fácil\Z"

Los sets de Python

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.

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.

Programación Fácil YouTube

Suscríbete

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.