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!
Positive Lookahead (?=patrón)
Coincide solo si le sigue el patrón
Ejemplo: \d+(?=€)
→ Números seguidos de "€"
Negative Lookahead (?!patrón)
Coincide solo si NO le sigue el patrón
Ejemplo: \d+(?!€)
→ Números NO seguidos de "€"
Positive Lookbehind (?<=patrón)
Coincide solo si está precedido por el patrón
Ejemplo: (?<=\$)\d+
→ Números después de "$"
Negative Lookbehind (?<!patrón)
Coincide solo si NO está precedido por el patrón
Ejemplo: (?<!\$)\d+
→ Números NO después de "$"
(?<=\$)\d+\.\d{2} # Encuentra "19.99" en "$19.99"
\w+(?=:)
\d+(?!\s?(kg|cm|ml))
Validar contraseñas (que tengan número y mayúscula):
^(?=.*\d)(?=.*[A-Z]).{8,}$
Extraer contenido entre etiquetas:
(?<=<p>).*?(?=</p>)
Encontrar palabras no entre comillas:
\b\w+\b(?![^"]*"[^"]*(?:"[^"]*"[^"]*)*$)
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]