Curso de Raku / Expresiones regulares y gramáticas / Expresiones regulares / Aserciones de contexto

Lookbehind

Un lookbehind comprueba lo que viene inmediatamente antes de la posición actual:

  • <?after …> — funciona si el texto anterior coincide (lookbehind positivo)
  • <!after …> — funciona si el texto anterior no coincide (lookbehind negativo)

Esto te permite emparejar algo solo por lo que lo precede, sin incluir ese prefijo en el resultado. Por ejemplo, captura los dígitos que siguen a un signo de dólar dejando el $ fuera de la coincidencia:

if '$100' ~~ / <?after '$'> \d+ / {
    say $/; # 「100」
}

La aserción <?after '$'> exige un $ justo antes de la posición actual, y después \d+ empareja los dígitos. La coincidencia es 100, sin el signo de dólar.

El lookahead y el lookbehind se combinan a menudo. Un fragmento de texto envuelto en <?after …> y <?before …> coincide solo cuando está entre los vecinos exigidos, una forma cómoda de extraer un valor de un contexto conocido.

Práctica

Resuelve 1 cuestionario sobre el contenido de este tema.

Quiz — Lookahead   |   Quiz — Aserciones


💪 O ve directamente a los ejercicios de esta sección.