Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Regex Syntax and Basic Patterns | Introducción a las expresiones regulares
Expresiones Regulares en Python

Regex Syntax and Basic Patterns

Desliza para mostrar el menú

Sintaxis de Regex: Elementos Fundamentales

Las expresiones regulares, o regex, se construyen utilizando una combinación de literales, metacaracteres, clases de caracteres y cuantificadores. Comprender estos componentes es esencial para escribir patrones efectivos.

  • Literales son caracteres ordinarios que coinciden consigo mismos. Por ejemplo, el patrón "cat" coincide exactamente con la cadena "cat";
  • Metacaracteres son símbolos especiales que tienen significados únicos en regex. Los metacaracteres más comunes incluyen:
    • . (punto): coincide con cualquier carácter individual excepto un salto de línea;
    • ^: coincide con el inicio de una cadena;
    • $: coincide con el final de una cadena;
    • *: coincide con cero o más ocurrencias del elemento anterior;
    • +: coincide con una o más ocurrencias del elemento anterior;
    • ?: coincide con cero o una ocurrencia del elemento anterior.
  • Clases de caracteres permiten hacer coincidir cualquier carácter de un conjunto de caracteres. Por ejemplo, [abc] coincide con "a", "b" o "c", y [0-9] coincide con cualquier dígito del 0 al 9.

Metacaracteres y Cuantificadores Útiles Basados en Letras

  • \w: coincide con cualquier carácter de palabra (equivalente a [a-zA-Z0-9_]). Se utiliza para hacer coincidir letras, dígitos o guiones bajos individuales;
  • \W: coincide con cualquier carácter que no sea de palabra (cualquier cosa que no coincida con \w);
  • \d: coincide con cualquier dígito (equivalente a [0-9]);
  • \D: coincide con cualquier carácter que no sea dígito;
  • \b: coincide con un límite de palabra (la posición entre un carácter de palabra y uno que no lo es). Se utiliza para hacer coincidir palabras completas;
  • \B: coincide con una posición que no es un límite de palabra.

Cuantificadores

Los cuantificadores especifican cuántas veces debe ocurrir el elemento anterior:

  • *: coincide cero o más veces; por ejemplo, \w* coincide con cualquier secuencia de caracteres de palabra, incluida la cadena vacía;
  • +: coincide una o más veces; por ejemplo, \w+ coincide con una o más caracteres de palabra consecutivos (como una palabra);
  • ?: coincide cero o una vez; por ejemplo, \w? coincide con cero o un carácter de palabra;
  • {n}: coincide exactamente n veces; por ejemplo, \w{3} coincide exactamente con tres caracteres de palabra seguidos;
  • {n,}: coincide n o más veces; por ejemplo, \w{2,} coincide con dos o más caracteres de palabra;
  • {n,m}: coincide entre n y m veces; por ejemplo, \w{2,5} coincide con entre dos y cinco caracteres de palabra seguidos.

Ejemplos en Python

  • re.findall(r"\w+", "Regex123 is fun!") devuelve todas las palabras: ["Regex123", "is", "fun"];
  • re.findall(r"\bcat\b", "The cat scattered the catalog.") coincide solo con la palabra aislada "cat";
  • re.findall(r"\w{5}", "apple banana kiwi") encuentra todas las secuencias de exactamente cinco caracteres de palabra: ["apple", "banan"].

Estos metacaracteres y cuantificadores son esenciales para hacer coincidir letras, palabras y patrones similares a palabras en texto utilizando la biblioteca re de Python.

123456789101112131415
import re text = "User123, admin42, guestX" # Find all digits digits = re.findall(r"[0-9]", text) print("Digits found:", digits) # Find all lowercase letters lowercase_letters = re.findall(r"[a-z]", text) print("Lowercase letters found:", lowercase_letters) # Find all uppercase letters uppercase_letters = re.findall(r"[A-Z]", text) print("Uppercase letters found:", uppercase_letters)

En este ejemplo, se utiliza la función re.findall() para buscar coincidencias en la cadena "User123, admin42, guestX". El patrón [0-9] coincide con cualquier dígito entre 0 y 9, por lo que encuentra todos los dígitos individuales en el texto. El patrón [a-z] coincide con cualquier letra minúscula de "a" a "z", y [A-Z] coincide con cualquier letra mayúscula de "A" a "Z". Cada clase de caracteres está encerrada entre corchetes, especificando el rango o conjunto de caracteres a coincidir. Estos patrones son fundamentales para extraer tipos específicos de caracteres de un texto.

123456789101112131415161718192021222324252627
import re text = "Hello_123 world! Regex is fun." # \w matches any word character (alphanumeric or underscore) word_chars = re.findall(r"\w", text) print("Word characters (\\w):", word_chars) # \W matches any non-word character non_word_chars = re.findall(r"\W", text) print("Non-word characters (\\W):", non_word_chars) # \b matches word boundaries words = re.findall(r"\b\w+\b", text) print("Words using word boundaries (\\b):", words) # * quantifier: zero or more word characters after 'o' pattern_star = re.findall(r"o\w*", text) print("'o' followed by zero or more word characters (o\\w*):", pattern_star) # + quantifier: one or more word characters after 'R' pattern_plus = re.findall(r"R\w+", text) print("'R' followed by one or more word characters (R\\w+):", pattern_plus) # ? quantifier: 'l' optionally followed by 'e' pattern_question = re.findall(r"le?", text) print("'l' optionally followed by 'e' (le?):", pattern_question)

Aquí puedes ver cómo usar la función re.findall() de Python con varios patrones regex para extraer información de la cadena "Hello_123 world! Regex is fun.". Esto es lo que hace cada patrón:

  • \w: El patrón r"\w" coincide con cualquier carácter de palabra, que incluye letras (mayúsculas y minúsculas), dígitos y el guion bajo (_). En la cadena dada, encuentra cada carácter de palabra individual, como 'H', 'e', 'l', 'o', '1', '2', '3', etc.

  • \W: El patrón r"\W" coincide con cualquier carácter que no sea de palabra. Esto incluye espacios, signos de puntuación y símbolos que no son letras, dígitos ni guiones bajos. En la cadena, encuentra caracteres como espacios, el signo de exclamación (!) y el punto (.).

  • \b: El patrón r"\b\w+\b" utiliza límites de palabra (\b) para coincidir con palabras completas. Aquí, \w+ coincide con uno o más caracteres de palabra, por lo que extrae palabras completas como 'Hello_123', 'world', 'Regex', 'is' y 'fun' como elementos separados.

  • Cuantificador *: El patrón r"o\w*" coincide con el carácter 'o' seguido de cero o más caracteres de palabra. Esto significa que coincidirá con 'o' aunque no esté seguido de ningún carácter de palabra, o capturará una secuencia que comience con 'o' y continúe con cualquier carácter de palabra siguiente. En la cadena, encuentra 'o_123' (de 'Hello_123') y 'orld' (de 'world').

  • Cuantificador +: El patrón r"R\w+" coincide con el carácter 'R' seguido de uno o más caracteres de palabra. Esto es útil para encontrar palabras que comienzan con 'R' y continúan con caracteres de palabra adicionales. En la cadena, encuentra 'Regex'.

  • Cuantificador ?: El patrón r"le?" coincide con la letra 'l' seguida opcionalmente de 'e'. El cuantificador ? significa que el carácter anterior ('e') puede aparecer cero o una vez. Este patrón coincidirá tanto con 'l' como con 'le' dondequiera que aparezcan en la cadena.

Cada uno de estos patrones resalta una característica clave de las expresiones regulares: coincidencia de tipos de caracteres específicos, límites y elementos repetidos, lo que facilita extraer o analizar información de texto en Python.

question mark

¿Con qué coincide el patrón regex [a-z]?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 2

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 1. Capítulo 2
some-alt