🎯 Nivel 6: Lookarounds - Búsquedas Contextuales Avanzadas

Los lookarounds son la herramienta más poderosa para búsquedas condicionales. Te permiten encontrar patrones solo si están precedidos o seguidos por otro patrón específico, ¡sin incluirlo en el resultado!

🔍 Los 4 Tipos de Lookarounds

  1. Positive Lookahead (?=patrón)
    Coincide solo si le sigue el patrón
    Ejemplo: \d+(?=€) → Números seguidos de "€"

  2. Negative Lookahead (?!patrón)
    Coincide solo si NO le sigue el patrón
    Ejemplo: \d+(?!€) → Números NO seguidos de "€"

  3. Positive Lookbehind (?<=patrón)
    Coincide solo si está precedido por el patrón
    Ejemplo: (?<=\$)\d+ → Números después de "$"

  4. Negative Lookbehind (?<!patrón)
    Coincide solo si NO está precedido por el patrón
    Ejemplo: (?<!\$)\d+ → Números NO después de "$"

🛠 Ejercicios con data.txt

1. Extraer precios sin símbolos

(?<=\$)\d+\.\d{2}  # Encuentra "19.99" en "$19.99"

2. Buscar palabras seguidas de ":" pero sin capturarlo

\w+(?=:)

3. Números no seguidos de unidades

\d+(?!\s?(kg|cm|ml))

💡 Casos de Uso Reales

  1. Validar contraseñas (que tengan número y mayúscula):

    ^(?=.*\d)(?=.*[A-Z]).{8,}$
  2. Extraer contenido entre etiquetas:

    (?<=<p>).*?(?=</p>)
  3. Encontrar palabras no entre comillas:

    \b\w+\b(?![^"]*"[^"]*(?:"[^"]*"[^"]*)*$)

📊 Tabla Comparativa

Tipo Símbolo Ejemplo Coincide con "123" en
Lookahead + (?=) \d(?=px) "123px" → "3"
Lookahead - (?!) \d(?!px) "123em" → "3"
Lookbehind + (?<=) (?<=\$)\d "$123" → "1"
Lookbehind - (?<!) (?<!\$)\d "€123" → "1"

[◀️ Volver a grupos] | [▶️ Siguiente: Optimización]