Guía básica de expresiones regulares

Este inicio rápido le permite ponerse al día rápidamente con las expresiones regulares. Obviamente, esta breve introducción no puede explicar todo lo que hay que saber sobre las expresiones regulares. Para obtener información detallada, consulte el tutorial de expresiones regulares.

Las expresiones regulares (también conocidas como "regex" o "regexp") son un lenguaje de programación utilizado para trabajar con cadenas de texto. Se utilizan para verificar si una cadena de texto cumple con un patrón determinado o para realizar búsquedas y reemplazos en una cadena de texto.

Las expresiones regulares son muy útiles porque permiten realizar búsquedas complejas en cadenas de texto de manera rápida y eficiente. Son utilizadas ampliamente en aplicaciones de procesamiento de texto, editores de código, aplicaciones de búsqueda y en muchas otras áreas.

Aunque el lenguaje de las expresiones regulares puede parecer complejo al principio, una vez que se comprenden los conceptos básicos y se adquiere práctica, pueden ser muy útiles en muchas situaciones.

 

Patrones de texto y coincidencias

Una expresión regular es un patrón que describe una determinada cantidad de texto. Por ejemplo, la regex «regex» coincide con cualquier cadena de texto que contenga la palabra «regex».

El patrón más básico es simplemente una coincidencia con el texto literal. Por ejemplo, la regex «regex» coincide con la cadena de texto «regex», pero no coincide con «regexp» o «regexes». También es posible utilizar letras mayúsculas o minúsculas, por lo que «Regex» o «REGEX» también coinciden con la regex «regex».

Es importante tener en cuenta que las expresiones regulares son sensibles a mayúsculas y minúsculas por defecto. Esto significa que «regex» y «Regex» no son lo mismo para una expresión regular. Si quieres que tu regex sea insensible a mayúsculas y minúsculas, debes utilizar una bandera de búsqueda específica (esto se explicará más adelante en la guía).

Además de coincidir con texto literal, las expresiones regulares también pueden utilizar metacaracteres, que son caracteres especiales que tienen un significado especial en el lenguaje de las expresiones regulares. Algunos ejemplos de metacaracteres comunes son el punto (.), el asterisco (*) y el signo de interrogación (?).

El punto (.) es un metacarácter que coincide con cualquier carácter (excepto un salto de línea). Por ejemplo, la regex «a.c» coincide con «abc», «aac», «a2c», etc.

El asterisco () es un metacarácter que indica que el carácter anterior debe aparecer 0 o más veces. Por ejemplo, la regex «ab» coincide con «b», «ab», «aab», «aaab», etc.

El signo de interrogación (?) es un metacarácter que indica que el carácter anterior debe aparecer 0 o 1 vez. Por ejemplo, la regex «a?b» coincide con «b» y «ab», pero no coincide con «aaab».

 

Caracteres literales

Los caracteres literales son aquellos que tienen un significado específico en las expresiones regulares y se utilizan para realizar coincidencias exactas con una cadena de texto.

Algunos ejemplos de caracteres literales comunes son:

.: coincide con cualquier carácter, excepto una nueva línea.
*: coincide con cero o más ocurrencias del **carácter** o **grupo** que le precede.
+: coincide con una o más ocurrencias del **carácter** o **grupo** que le precede.
?: coincide con cero o una ocurrencia del **carácter** o **grupo** que le precede.
{n}: coincide con exactamente n ocurrencias del **carácter** o **grupo** que le precede.
{n,m}: coincide con al menos n y como máximo m ocurrencias del **carácter** o **grupo** que le precede.

Es importante tener en cuenta que algunos de estos caracteres tienen un significado especial en las expresiones regulares y, por lo tanto, deben escaparse con una barra invertida () si se desea utilizarlos como caracteres literales. Por ejemplo, para coincidir con un punto literal, deberías utilizar . en tu expresión regular.

También hay algunos caracteres que tienen un significado especial en las expresiones regulares y que deben escaparse siempre, independientementemente de su uso. Estos caracteres son: , ^, $, *, +, ?, {, [, y |.

 

Clases de caracteres o conjuntos de caracteres

Las conocidas como clases de caracteres o conjuntos de caracteres son unas herramientas muy útiles en regex que te permiten realizar coincidencias con múltiples caracteres de una sola vez. Estos conjuntos se crean utilizando corchetes ([]) y pueden incluir cualquier combinación de caracteres individuales o rangos de caracteres.

Algunos ejemplos de clases de caracteres son:

[abc]: coincide con cualquiera de los caracteres a, b, o c. [a-z]: coincide con cualquier carácter minúscula de la a a la z. [A-Z]: coincide con cualquier carácter mayúscula de la A a la Z. [0-9]: coincide con cualquier dígito del 0 al 9.

También puedes utilizar el guión (-) al principio o al final de un conjunto de caracteres para incluir todos los caracteres que le preceden o le siguen, respectivamente. Por ejemplo:

[-a-z]: coincide con cualquier carácter minúscula de la a a la z o con el guión (-). [a-z-]: coincide con cualquier carácter minúscula de la a a la z o con el guión (-).

También puedes utilizar el signo de exclamación (^) al principio de un conjunto de caracteres para negar el conjunto. Esto significa que la expresión regular coincidirá con cualquier carácter que no esté incluido en el conjunto. Por ejemplo:

Es importante tener en cuenta que algunos caracteres tienen un significado especial dentro de los conjuntos de caracteres y deben escaparse con una barra invertida () si se desea utilizarlos como caracteres literales. Por ejemplo, para incluir un guión literal en un conjunto de caracteres, deberías utilizar [-] en tu expresión regular.

 

Clases de caracteres taquigráficos

Te permiten realizar coincidencias con un conjunto predefinido de caracteres de manera rápida y sencilla. Estos conjuntos se crean utilizando una secuencia de dos o tres caracteres y se conocen como "metacaracteres taquigráficos".

Algunos ejemplos de clases de caracteres taquigráficos comunes son:

\d: coincide con cualquier dígito (equivalente a [0-9]). \D: coincide con cualquier carácter que no sea un dígito (equivalente a [^0-9]). \s: coincide con cualquier carácter de espacio en blanco (incluye espacio, tabulación, nueva línea, etc.). \S: coincide con cualquier carácter que no sea un carácter de espacio en blanco (equivalente a [^\s]). \w: coincide con cualquier carácter alfanumérico o guión bajo (equivalente a [a-zA-Z0-9_]). \W: coincide con cualquier carácter que no sea alfanumérico ni guión bajo (equivalente a [^a-zA-Z0-9_]).

Es importante tener en cuenta que algunos de estos metacaracteres tienen un significado especial en las expresiones regulares y, por lo tanto, deben escaparse con una barra invertida () si se desea utilizarlos como caracteres literales. Por ejemplo, para coincidir con un guión bajo literal, deberías utilizar \_ en tu expresión regular.

 

 

Acentos circunflejos

Los acentos circunflejos (también conocidos como "negación lógica") son una herramienta muy útil en expresiones regulares que te permiten negar un conjunto de caracteres o una clase de caracteres taquigráfica. Estos se utilizan colocando un acento circunflejo (^) al principio de un conjunto de caracteres o una clase de caracteres taquigráfica.

Algunos ejemplos de uso de los acentos circunflejos son:

Es importante tener en cuenta que el acento circunflejo (^) tiene un significado especial dentro de los conjuntos de caracteres y que, por lo tanto, debe escaparse con una barra invertida () si se desea utilizarlo como carácter literal. Por ejemplo, para incluir un acento circunflejo literal en un conjunto de caracteres, deberías utilizar [^] en tu expresión regular.

 

Alternancia

La permite realizar coincidencias con cualquiera de varias cadenas de texto. Se utiliza el símbolo de barra vertical (|) para separar las diferentes opciones y la expresión regular coincidirá con cualquiera de ellas.

Por ejemplo, la expresión regular cat|dog coincidiría con cualquiera de las cadenas cat o dog.

Es importante tener en cuenta que la alternancia tiene una alta prioridad en las expresiones regulares y, por lo tanto, debe utilizarse con cuidado para evitar ambigüedades. Por ejemplo, la expresión regular cat|cats coincidiría con cualquiera de las cadenas cat o cats, pero no con la cadena cats!

También es posible utilizar la alternancia con conjuntos de caracteres y clases de caracteres taquigráficas. Por ejemplo, la expresión regular [abc]|[def] coincidiría con cualquiera de los caracteres a, b, c, d, e, o f.

 

 

Repetición

Las expresiones regulares te permiten realizar coincidencias con un número determinado de ocurrencias de un carácter o grupo de caracteres utilizando los metacaracteres *, +, y ?. También puedes utilizar los metacaracteres {n}, {n,}, y {n,m} para coincidir con una cantidad específica de ocurrencias.

 

Agrupación y captura

Las expresiones regulares te permiten agrupar diferentes elementos y realizar coincidencias con ellos como una unidad utilizando paréntesis (( y )). También puedes utilizar paréntesis para capturar partes de la cadena de texto y utilizarla posteriormente en la expresión regular o en la sustitución.

 

Referencias posteriores

Las expresiones regulares te permiten hacer referencia a grupos previamente definidos utilizando la sintaxis \n, donde n es el número de grupo. Esto puede ser útil para realizar coincidencias con patrones que se repiten o para hacer coincidir una parte de la cadena de texto con otra.

 

Grupos con nombre y retro-referencias

Las expresiones regulares te permiten asignar nombres a los grupos y hacer referencia a ellos posteriormente utilizando la sintaxis (?<nombre>...). También puedes utilizar la sintaxis \k<nombre> para hacer una retro-referencia a un grupo con nombre. Esto puede ser útil para mejorar la legibilidad y la mantenibilidad de la expresión regular.

 

Propiedades Unicode

Las propiedades Unicode son una característica avanzada de las expresiones regulares que te permiten realizar coincidencias con caracteres Unicode en función de sus propiedades, como por ejemplo su categoría de carácter, su script, o su género.

 

Lookaround

Los lookarounds son una característica avanzada de las expresiones regulares que te permiten realizar coincidencias con una cadena de texto basándose en el contexto en el que se encuentra, sin incluir el contexto en la coincidencia final. Hay dos tipos de lookarounds: lookahead y lookbehind.

Sintaxis de espacio libre: La sintaxis de espacio libre es un modo de escribir expresiones regulares que permite incluir comentarios y mejorar la legibilidad de la expresión regular. Se activa colocando un signo de porcentaje (%) al principio y al final de la expresión regular y utilizando el signo de porcentaje (%) para introducir comentarios. Algunas características de la sintaxis de espacio libre incluyen:

  • Los comentarios se extienden desde el signo de porcentaje hasta el final de la línea.
  • Los espacios en blanco y las tabulaciones al principio y al final de la línea son ignorados.
  • Los saltos de línea no son considerados caracteres de nueva línea.
  • Los caracteres # y ; son tratados como caracteres de comentario y se extienden hasta el final de la línea.

 

No te pierdas los últimos artículos:

Web Scraping con Python y BeautifulSoup para Principiantes

Web Scraping con Python y BeautifulSoup para Principiantes

Bienvenido a esta guía sobre Web Scraping con Python y BeautifulSoup, diseñada especialmente para principiantes. Si estás buscando aprender a extraer datos de sitios web de manera eficiente, seguro que ...
Curso de Python Básico Gratis

Curso de Python Básico Gratis

Módulo 1: Introducción a Python Nuestra meta principal es que, al final de este curso, tengas una sólida comprensión de los fundamentos de Python y estés listo para crear tus ...
Sistemas Expertos: ¿Qué son y para qué sirven?

Sistemas Expertos: ¿Qué son y para qué sirven?

Los sistemas expertos representan una rama fascinante de la inteligencia artificial, diseñada para emular la toma de decisiones de un humano experto en un campo particular. Estas herramientas avanzadas combinan ...
La Historia de la Inteligencia Artificial contada en Años

La Historia de la Inteligencia Artificial contada en Años

¿Cómo comenzó todo? Echemos un ojo a la historia de la IA a lo largo del tiempo. Desde 1950 hasta 2024. El artículo es largo, usa la tabla de contenidos ...
¿Qué es el meta-aprendizaje?

¿Qué es el meta-aprendizaje?

El mundo de la Inteligencia Artificial (IA) está en constante evolución, y una de las áreas más intrigantes y prometedoras es el metaaprendizaje. Pero, ¿qué es exactamente el metaaprendizaje y ...