Expresiones regulares en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Las expresiones regulares, también conocidas como "regex", son una herramienta poderosa para trabajar con cadenas de texto. Se pueden utilizar para buscar, editar y manipular texto de varias maneras. En este laboratorio, aprenderá los conceptos básicos de trabajar con expresiones regulares en Python.

Logros

  • Expresiones Regulares

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/AdvancedTopicsGroup -.-> python/regular_expressions("Regular Expressions") subgraph Lab Skills python/strings -.-> lab-93{{"Expresiones regulares en Python"}} python/importing_modules -.-> lab-93{{"Expresiones regulares en Python"}} python/standard_libraries -.-> lab-93{{"Expresiones regulares en Python"}} python/regular_expressions -.-> lab-93{{"Expresiones regulares en Python"}} end

Importar el módulo re

Para utilizar expresiones regulares en Python, necesitará importar el módulo re.

Abra una nueva sesión del intérprete de Python y escriba el siguiente código:

python3

Agregue la siguiente línea al principio de su script de Python:

import re

Compilar una expresión regular

Antes de poder utilizar una expresión regular para buscar un patrón en una cadena, primero debe compilarla. Para compilar una expresión regular, puede utilizar la función re.compile().

Por ejemplo, el siguiente código compilará una expresión regular que busca la letra "a" en una cadena:

regex = re.compile(r"a")

Tenga en cuenta que la r antes de la cadena indica que es una cadena "cruda", lo que significa que las barras invertidas se tratan como caracteres literales en lugar de caracteres de escape. Esto generalmente se recomienda al trabajar con expresiones regulares para evitar confusiones.

Utilizar el método search()

Ahora que ha compilado una expresión regular, puede utilizar el método search() para buscar un patrón en una cadena.

Por ejemplo, el siguiente código buscará la letra "a" en la cadena "cat":

match = regex.search("cat")
print(match) ## Output: <re.Match object; span=(1, 2), match='a'>

El método search() devolverá un objeto Match si se encuentra el patrón, o None si no se encuentra.

Utilizar el método match()

El método match() es similar al método search(), pero solo coincide con patrones al principio de una cadena.

Por ejemplo, el siguiente código coincidirá con el patrón "cat" al principio de la cadena "catdog":

regex = re.compile(r"cat")
match = regex.match("catdog")
print(match) ## Output: <re.Match object; span=(0, 3), match='cat'>

Utilizar el método findall()

El método findall() devuelve una lista de todas las instancias de un patrón en una cadena.

Por ejemplo, el siguiente código encontrará todas las letras "a" en la cadena "cat":

regex = re.compile(r"a")
matches = regex.findall("cat")
print(matches)  ## Output: ["a"]

Hay muchos caracteres especiales que se pueden utilizar en expresiones regulares para coincidir con patrones más complejos. Aquí hay algunos ejemplos:

  • . (punto) coincide con cualquier carácter individual
  • * coincide con cero o más del carácter precedente
  • + coincide con uno o más del carácter precedente
  • ? coincide con cero o uno del carácter precedente
  • [caracteres] coincide con cualquiera de los caracteres dentro de los corchetes cuadrados

Utilizar grupos

Puede utilizar grupos en sus expresiones regulares para extraer partes específicas de un patrón. Los grupos se crean al encerrar una parte del patrón entre paréntesis.

Por ejemplo, la siguiente expresión regular coincidirá con cualquier palabra que empiece con "cat" y termine con "dog":

regex = re.compile(r"cat(.*)dog")

Luego puede utilizar el método group() del objeto Match para extraer la parte del patrón que fue coincidida por el grupo. Por ejemplo:

match = regex.search("catdog")
print(match.group(1))  ## Output: "" (cadena vacía)

match = regex.search("catfooddog")
print(match.group(1))  ## Output: "food"

Utilizar el método sub()

El método sub() le permite reemplazar todas las instancias de un patrón en una cadena con una cadena diferente.

Por ejemplo, el siguiente código reemplazará todas las letras "a" en la cadena "cat" con la letra "b":

regex = re.compile(r"a")
new_string = regex.sub("b", "cat")
print(new_string)  ## Output: "cbt"

Utilizar el método split()

El método split() le permite dividir una cadena por un patrón.

Por ejemplo, el siguiente código dividirá la cadena "cat dog" por el carácter de espacio:

regex = re.compile(r" ")
words = regex.split("cat dog")
print(words)  ## Output: ["cat", "dog"]

Regex101

Regex101 es una herramienta de prueba de expresiones regulares en línea que le permite probar sus expresiones regulares contra una cadena de su elección. Es un recurso útil para depurar y desarrollar expresiones regulares, ya que proporciona información detallada sobre las coincidencias y los errores en su regex.

  • https://regex101.com

Para usar Regex101, puede ingresar una expresión regular en el campo "Regex" y una cadena para probarla en el campo "Cadena de prueba". A medida que escribe, la herramienta resaltará cualquier coincidencia en la cadena y también mostrará cualquier error o advertencia en la sección "Resultado".

Además de probar expresiones regulares, Regex101 también incluye una serie de funciones útiles, como la capacidad de guardar y compartir sus expresiones regulares, una biblioteca de patrones de expresiones regulares comunes y opciones para personalizar la forma en que la herramienta realiza coincidencias.

En general, Regex101 es una herramienta valiosa para cualquiera que trabaje con expresiones regulares en Python o cualquier otro lenguaje de programación.

Resumen

En este laboratorio, aprendiste cómo utilizar expresiones regulares en Python para buscar, coincidir y manipular cadenas. Aprendiste cómo compilar expresiones regulares, cómo utilizar varios métodos como search(), match(), findall() y sub(), y cómo utilizar caracteres especiales y grupos para coincidir con patrones más complejos.

¡Espero que esto ayude! házmelo saber si tienes alguna pregunta.