¿Qué es Regex?
Definición Simple
Regex (expresiones regulares) son patrones de búsqueda escritos con un lenguaje especial. Es como darle instrucciones muy precisas a tu computadora sobre qué texto quieres encontrar.
Imagina que tienes un libro de 1000 páginas y quieres encontrar:
- Todos los números de teléfono
- Todas las direcciones de email
- Todas las fechas en formato DD/MM/AAAA
Hacerlo a mano sería imposible. Con regex, escribes un patrón y la computadora encuentra todas las coincidencias automáticamente.
Analogía: Regex como una Receta de Búsqueda
Piensa en regex como dar instrucciones a un robot que lee texto:
| Instrucción humana | Regex |
|---|---|
| “Busca la letra a” | a |
| “Busca cualquier número” | [0-9] |
| “Busca una o más letras” | [a-z]+ |
| “Busca algo que empiece con Hola” | ^Hola |
El robot lee tu patrón y luego recorre el texto de izquierda a derecha, caracter por caracter, buscando coincidencias.
¿Cómo Lee Regex? (Izquierda a Derecha)
Esta es la regla más importante para entender regex:
Regex se lee y se aplica de IZQUIERDA a DERECHA, caracter por caracter.
Ejemplo Visual
Texto: "Hola mundo"
Patrón: Hola
Texto: H o l a m u n d o
↓ ↓ ↓ ↓
Patrón: H o l a
✓ ✓ ✓ ✓ → ¡Coincidencia encontrada!
El regex compara:
- ¿
Hdel texto coincide conHdel patrón? ✓ - ¿
odel texto coincide conodel patrón? ✓ - ¿
ldel texto coincide conldel patrón? ✓ - ¿
adel texto coincide conadel patrón? ✓
¡Todas coinciden! Se encontró “Hola”.
El Motor de Regex: Paso a Paso
Cuando escribes un regex, internamente pasa esto:
Texto: "gato perro gato"
Patrón: "gato"
Posición 0: g-a-t-o → ¿coincide con "gato"? ✓ MATCH en posición 0-3
Posición 1: a-t-o- → ¿coincide con "gato"? ✗
Posición 2: t-o- -p → ¿coincide con "gato"? ✗
...
Posición 11: g-a-t-o → ¿coincide con "gato"? ✓ MATCH en posición 11-14
El motor prueba el patrón en cada posición del texto hasta encontrar todas las coincidencias.
¿Para Qué Sirve Regex?
1. Búsqueda Avanzada
Encontrar patrones específicos en grandes cantidades de texto.
# Encontrar todas las líneas que contienen "error" en un log
grep "error" archivo.log
2. Validación de Datos
Verificar que un texto tenga el formato correcto.
# ¿Es un email válido?
# ¿Tiene formato usuario@dominio.com?
3. Extracción de Información
Sacar datos específicos de un texto.
# Extraer todos los números de un archivo
grep -o "[0-9]+" archivo.txt
4. Buscar y Reemplazar
Cambiar patrones de texto de forma masiva.
# Reemplazar todas las fechas DD/MM/AAAA por AAAA-MM-DD
Regex en la Terminal: grep
El comando principal para usar regex en la terminal es grep:
grep "patrón" archivo.txt
grep busca el patrón y muestra las líneas completas donde lo encuentra.
Ejemplo Básico
# Crear un archivo de prueba
echo -e "Hola mundo\nAdios mundo\nHola amigo" > prueba.txt
# Buscar líneas que contengan "Hola"
grep "Hola" prueba.txt
Salida:
Hola mundo
Hola amigo
Historia Rápida (Para Contexto)
| Década | Evento |
|---|---|
| 1940s | Stephen Kleene desarrolla la teoría matemática |
| 1960s | Ken Thompson lo implementa en el editor ed de UNIX |
| 1970s | Se crea grep (Global Regular Expression Print) |
| 1980s | Perl populariza regex en programación |
| Hoy | Está en todos los lenguajes: Python, JavaScript, etc. |
Resumen
| Concepto | Descripción |
|---|---|
| Regex | Patrón de búsqueda escrito con sintaxis especial |
| Lectura | Siempre de izquierda a derecha |
grep |
Comando de terminal para buscar con regex |
| Uso | Buscar, validar, extraer, reemplazar texto |
Siguiente: Caracteres Literales
En la siguiente sección aprenderás a escribir tus primeros patrones usando caracteres literales - la forma más básica de regex.