Expresión regular para niños
Una expresión regular (también conocida como regex o regexp) es como un código secreto o un patrón especial que usamos para encontrar combinaciones de letras, números y símbolos dentro de un texto. Imagina que tienes un libro muy grande y quieres encontrar todas las palabras que empiezan con "ho" y terminan con "la", pero que pueden tener muchas "o" en medio, como "hola", "hoola", "hooola". Una expresión regular te ayudaría a hacer eso de forma muy rápida y precisa.
Estas expresiones son muy útiles en la ciencia computacional teórica y en la teoría de lenguajes formales. Fueron creadas para describir y buscar patrones en cadenas de texto, y son una forma muy flexible de reconocer y manipular información escrita. Por ejemplo, para encontrar las palabras "Handel", "Händel" y "Haendel", podrías usar el patrón H(a|ä|ae)ndel
.
Las expresiones regulares se construyen usando reglas y símbolos especiales que le dicen a la computadora qué buscar.

Contenido
Expresiones Regulares: ¿Qué Son y Para Qué Sirven?
Las expresiones regulares son patrones de texto que nos permiten buscar, encontrar y, a veces, cambiar partes de un texto de manera muy específica. Piensa en ellas como un lenguaje especial que le das a una computadora para que encuentre exactamente lo que necesitas en un montón de palabras.
¿Cómo se Construyen las Expresiones Regulares?
Las expresiones regulares se forman combinando caracteres normales con algunos símbolos especiales que tienen un significado particular. Estos símbolos son como "operadores" que nos ayudan a crear patrones más complejos.
Alternativas con la Barra Vertical (|)
La barra vertical |
se usa para decir "o esto, o aquello". Por ejemplo, si escribes amarillo|azul
, la expresión regular buscará la palabra "amarillo" o la palabra "azul". Es como elegir entre varias opciones.
Cuantificadores: ¿Cuántas Veces se Repite?
Los cuantificadores nos dicen cuántas veces puede aparecer un carácter o un grupo de caracteres. Los más comunes son:
- El signo de interrogación
?
: Significa que el carácter anterior es opcional, es decir, puede aparecer una vez o ninguna. Por ejemplo,ob?scuro
encontrará "oscuro" y "obscuro". - El signo más
+
: Indica que el carácter anterior debe aparecer al menos una vez. Por ejemplo,ho+la
encontrará "hola", "hoola", "hooola", y así sucesivamente. - El asterisco
*
: Significa que el carácter anterior puede aparecer cero, una o muchas veces. Por ejemplo,0*42
encontrará "42", "042", "0042", etc.
Agrupando con Paréntesis ()
Los paréntesis ()
se usan para agrupar partes de una expresión regular. Esto ayuda a definir el orden en que se aplican los operadores. Por ejemplo, (p|m)adre
es lo mismo que padre|madre
. También pueden hacer que un grupo sea opcional, como en (des)?amor
, que encontrará "amor" y "desamor".
Puedes combinar estos elementos para crear patrones muy específicos. Por ejemplo, H(ae?|ä)ndel
es una forma de encontrar "Handel", "Haendel" o "Händel".
¿Dónde se Usan las Expresiones Regulares?
Las expresiones regulares son herramientas muy poderosas que se usan en muchos lugares, especialmente en el mundo de la informática.
En Editores de Texto y Programas
Su uso más común es en los editores de texto y otras aplicaciones de computadora para buscar y cambiar texto. Por ejemplo, si quieres encontrar todas las veces que aparece una palabra específica en un documento muy largo, o si quieres cambiar un formato de fecha por otro, las expresiones regulares son perfectas para eso. Herramientas como `grep` y `sed` en sistemas Unix/Linux las hicieron muy populares.
En la Programación: Motores de Búsqueda
Muchos lenguajes de programación tienen incorporada la capacidad de usar expresiones regulares. Esto permite a los programadores crear programas que pueden buscar y validar información de manera muy eficiente. Por ejemplo, un programa podría usar una expresión regular para asegurarse de que un usuario ha escrito su fecha de nacimiento en el formato correcto (día/mes/año).
Algunos lenguajes que usan expresiones regulares son:
- C++ (desde su versión C++11)
- Java
- JavaScript
- Perl (fue clave en su popularización)
- PHP
- Python
- .Net Framework
Caracteres Especiales en Expresiones Regulares
Además de los cuantificadores y los paréntesis, existen otros caracteres especiales que le dan un poder increíble a las expresiones regulares.
El Punto (.)
El punto .
significa "cualquier carácter". Es como un comodín que puede ser cualquier letra, número o símbolo. Por ejemplo, si buscas g.t
en "el gato de piedra en la gótica puerta de getisboro goot", encontrarás "gat", "gót" y "get". Ten cuidado, porque el punto solo representa un carácter a la vez.
La Barra Inversa (\)
La barra inversa \
se usa para darle un significado especial al carácter que le sigue, o para quitarle su significado especial. Por ejemplo, si quieres buscar un punto literal (no el comodín), escribirías \.
.
También se usa para representar caracteres que no se pueden escribir fácilmente, como:
\t
: un tabulador (un espacio grande).\n
: un salto de línea (para empezar una nueva línea).\d
: cualquier dígito (del 0 al 9).\w
: cualquier carácter alfanumérico (letras, números y guion bajo).\s
: cualquier espacio en blanco (espacios, tabuladores, saltos de línea).\A
: el inicio de todo el texto.\Z
: el final de todo el texto.\b
: el límite de una palabra (donde empieza o termina una palabra).
Los Corchetes ([ ])
Los corchetes []
se usan para definir un grupo o "clase" de caracteres. Si pones [aeiou]
, la expresión buscará cualquiera de esas vocales. Dentro de los corchetes, puedes usar un guion -
para indicar un rango, como [a-z]
para cualquier letra minúscula, o [0-9]
para cualquier dígito.
Los caracteres especiales (como el punto o el asterisco) pierden su significado dentro de los corchetes y se tratan como caracteres normales. Por ejemplo, [\d.]
buscará un dígito o un punto.
El Signo de Dólar ($) y el Acento Circunflejo (^)
- El signo de dólar
$
representa el final de una línea o de todo el texto. - El acento circunflejo
^
representa el inicio de una línea o de todo el texto.
Estos son útiles para buscar patrones que deben aparecer al principio o al final de una línea. Por ejemplo, ^[a-z]
buscará líneas que empiecen con una letra minúscula. Si el ^
se usa dentro de corchetes, como [^abc]
, significa "cualquier carácter EXCEPTO 'a', 'b' o 'c'".
Las Llaves ({})
Las llaves {}
se usan para especificar cuántas veces se repite un carácter o grupo.
\d{2}
: busca exactamente dos dígitos seguidos.\d{2,4}
: busca entre dos y cuatro dígitos seguidos.
El Asterisco (*) y el Signo de Suma (+) (Revisado)
Ya los vimos como cuantificadores, pero es importante recordar su comportamiento:
*
: cero o más veces.+
: una o más veces.
Un detalle importante: por defecto, el asterisco y el signo de suma son "codiciosos", lo que significa que intentan encontrar la mayor cantidad de texto posible. Si quieres que encuentren la menor cantidad, puedes añadir un signo de interrogación después de ellos, por ejemplo, .*?
o +?
.
Grupos en Expresiones Regulares
Los paréntesis ()
no solo agrupan, sino que también crean "grupos" que el motor de búsqueda puede recordar y usar más tarde.
Grupos Anónimos
Cuando encierras una parte de tu expresión regular entre paréntesis, creas un grupo anónimo. El motor de búsqueda guarda lo que encontró en ese grupo. Puedes referirte a ese grupo más tarde en la misma expresión usando \1
para el primer grupo, \2
para el segundo, y así sucesivamente. Por ejemplo, <([a-zA-Z]\w*?)>.*?</\1>
puede encontrar etiquetas HTML como `...` o `...` porque el `\1` se refiere al nombre de la etiqueta que se encontró en el primer grupo.
Grupos Nominales (con Nombre)
Algunos sistemas permiten dar un nombre a tus grupos para que sea más fácil recordarlos y usarlos. Esto se hace con una sintaxis especial dentro de los paréntesis, como (?<NombreDelGrupo>...)
. Por ejemplo, ^(?<Dia>\d\d)\/(?<Mes>\d\d)\/(?<Año>\d\d\d\d)$
permite nombrar las partes de una fecha como "Dia", "Mes" y "Año". Esto es muy útil cuando programas, ya que puedes acceder a cada parte del patrón por su nombre.
Las expresiones regulares son una herramienta fundamental para trabajar con texto en el mundo digital, permitiendo a los programadores y usuarios buscar y manipular información de forma muy precisa y potente.
Galería de imágenes
-
Stephen Kleene, quien ayudó a fundar el concepto
Véase también
En inglés: Regular expression Facts for Kids