Saltar al contenido principal
eLearner.app
Módulo 6 · Lección 4 de 424/32 en el curso~12 min
Lecciones del módulo (4/4)

Lookaround en la práctica

Pongamos en práctica las cuatro formas de lookaround en escenarios del mundo real. Los lookarounds brillan cuando necesitas:

  1. Extraer un valor sin el contexto que lo identifica.
  2. Validar una cadena frente a múltiples condiciones independientes.
  3. Filtrar coincidencias que cumplan algunas condiciones pero no otras.

Validación de contraseñas

Code
Pattern: ^(?=.*[A-Z])(?=.*\d)(?=.*[^a-zA-Z\d]).{8,}$
Checks:
  - al menos una mayúscula      (?=.*[A-Z])
  - al menos un dígito          (?=.*\d)
  - al menos un símbolo         (?=.*[^a-zA-Z\d])
  - longitud mínima de 8        .{8,}

Cada lookahead comprueba una condición, empezando desde el principio (^). Todos son de ancho cero: el motor permanece en la posición 0 y luego consume con .{8,}$Block_content.

Extracción entre delimitadores

Code
Pattern: (?<=\().+?(?=\))
Sample:  Funzione foo(bar) e baz(qux, qix)
Match: "bar", "quux, qix" (sin paréntesis)

Lookbehind + lookahead + cuantificador lazy: extrae el contenido dentro de los paréntesis sin incluirlos.

Combinación de lookahead y lookbehind

El uso conjunto de lookahead y lookbehind permite aislar cadenas que se encuentran dentro de etiquetas o formatos específicos (por ejemplo, extraer texto entre dos etiquetas sin incluir las etiquetas en la coincidencia final). Esto evita operaciones posteriores de limpieza de cadenas.

Pruébalo tú

Ejercicio#regex.m6.l4.e1
Intentos: 0Cargando...

Extrae el valor de cada asignación `key=value` del log: SOLO los valores (sin claves ni `=`). Los valores pueden contener letras y dígitos.

Cargando editor...
Mostrar pista

Mueve `=` dentro de un lookbehind (?<==): de esta forma el match contiene solo el valor.

Solución disponible después de 3 intentos

Ejercicio de repaso

Ejercicio#regex.m6.l4.e2
Intentos: 0Cargando...

Encuentra qué palabras tienen al menos UNA letra mayúscula Y al menos UN dígito (en cualquier orden), localizándolas en el texto.

Cargando editor...
Mostrar pista

Doble lookahead al inicio: (?=\w*[A-Z])(?=\w*\d). Luego consume la palabra con \w+.

Solución disponible después de 3 intentos

Desafío adicional

Ejercicio#regex.m6.l4.e3
Intentos: 0Cargando...

Extrae solo los dígitos numéricos que estén encerrados exactamente entre paréntesis, por ejemplo, extrae `102` de `(102)` sin capturar los paréntesis.

Cargando editor...
Mostrar pista

Combina un lookbehind positivo (?<=\( ) para el paréntesis de apertura y un lookahead positivo (?=\) ) para el de cierre.

Solución disponible después de 3 intentos