22  Expresiones regulares (REGEX)

Fecha: 24 de septiembre, 2026

Las expresiones regulares (o REGEX) son patrones de texto que describen un conjunto de strings (cadenas de caracteres). Te permiten buscar, validar y procesar texto de manera flexible y poderosa.

Idea principal 🎯:

Una expresión regular es como un patrón de búsqueda avanzado que te permite encontrar texto que coincida con reglas específicas, sin necesidad de escribir el texto exacto.

Estructura de una expresión regular

patrón = [caracteres] [metacaracteres] [cuantificadores]

Estructura básica de grep

grep [opciones] "patrón" archivo.txt

Componentes:

1. Caracteres literales

Son caracteres normales que se buscan tal cual.

grep "hola" archivo.txt
# Busca la palabra "hola" exactamente

2. Metacaracteres en REGEX

Son caracteres especiales que tienen significado especial.

grep "h.la" archivo.txt
# Busca "hala", "hila", "hola", "hula", etc.

3. Cuantificadores

Especifican cuántas veces debe repetirse un patrón.

grep "ho*la" archivo.txt
# Busca "hla", "hola", "hoola", "hooola", etc.

22.1 Diferencia: Wildcards vs REGEX 🔄

Wildcards (en bash)

# Buscar archivos
ls *.txt           # Expande a archivos reales
ls [abc]*          # Expande a archivos que comienzan con a, b o c

Contexto: Sistema de archivos

REGEX (en comandos)

# Buscar en contenido de archivos
grep ".*\.txt$" archivo.txt    # Busca líneas que terminan en .txt
grep "[abc]" archivo.txt       # Busca líneas que contienen a, b o c

Contexto: Contenido de texto

22.2 Operadores de redirección de datos I/O

Usualmente cuando trabajamos con datos, es necesario pasar el resultado de un comando a otro para hacer un procesamiento de datos apilado, como en un algortimo. Un stream o corriente esta hecha de datos. Es una corriente de datos. Un ejemplo muy familiar es el teclado y la pantalla. El teclado tiene una interfaz en donde por cada tecla presionada, un caracter se guarda en un archivo. Se dice entonces que es una corriente de entrada. Cuando la pantalla nos muestra lo que estamos escribiendo entonces la data sale hacia nosotros y eso convierte a la pantalla en una corriente de salida. Los dispositivos que hacen este tipo de transmisión de datos se llaman dispositivos I/O (input y output). Los operadores que se encargan de esto se conocen como operadores de redirección. Tres importantes son:

Comando Función
> Stream de salida de datos. Sobre escribre sobre un archivo.
>> Stream de salida de datos. Adjunta nueva salida a datos preexistentes en un archivo.
< Stream de entrada de datos. Recibe datos para procesamiento con algun comando.
NotaEjercicio 4
  1. Crea el archivo temas_matematicas.txt e imprime su contenido empleando los siguientes comandos:

    echo -e "Álgebra\nGeometría\nCálculo\nEstadística\nProbabilidad\nTopología\nTrigonometría\nAritmética\nCombinatoria\nLógica\nAnálisis\nEcuaciones\nVectores\nMatrices" > temas_matematicas.txt
    cat temas_matematicas.txt
  2. Agrega el tema “Teoría de números” en la última fila empleando “>>”.

    echo "Teoría de números" >> temas_matematicas.txt
    cat temas_matematicas.txt
  3. Ordena alfabéticamente el contenido de temas_matematicas.txt.

    sort temas_matematicas.txt
  4. Guarda los temas ordenados en un nuevo archivo llamado temas_ordenados.txt.

    sort temas_matematicas.txt > temas_ordenados.txt
    cat temas_ordenados.txt

22.2.1 Tabla resumen de metacaracteres 📊

Metacarácter Significado Ejemplo Coincide con
. Cualquier carácter a.o ato, amo, ano
* Cero o más ab*c ac, abc, abbc
+ Una o más ab+c abc, abbc
? Cero o una ab?c ac, abc
[ ] Conjunto a[123]o a1o, a2o, a3o
[^...] Negación a[^0-9]o ato, amo
- Rango [a-z] a, b, c, …, z
^ Inicio línea ^Hola Hola mundo
$ Fin línea mundo$ Hola mundo
\ Escape \. . (punto literal)
( ) Agrupación (ab)+ ab, abab
| Alternancia gato|perro gato, perro
{ } Repetición exacta a{2} aa

22.3 Material suplementario