Cursus Raku / Reguliere expressies en grammatica’s / Reguliere expressies / Lookaround-asserties

Lookbehind

Een lookbehind controleert wat er onmiddellijk vóór de huidige positie komt:

  • <?after …> — slaagt als de tekst ervoor matcht (positieve lookbehind)
  • <!after …> — slaagt als de tekst ervoor niet matcht (negatieve lookbehind)

Zo kun je iets matchen alleen vanwege wat eraan voorafgaat, zonder dat voorvoegsel in het resultaat op te nemen. Vang bijvoorbeeld de cijfers die op een dollarteken volgen, maar laat de $ buiten de match:

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

De assertion <?after '$'> eist een $ vlak vóór de huidige positie, waarna \d+ de cijfers matcht. De match is 100, zonder het dollarteken.

Lookahead en lookbehind worden vaak gecombineerd. Een stuk tekst omgeven door <?after …> en <?before …> matcht alleen wanneer het tussen de vereiste buren staat — een handige manier om een waarde uit een bekende context te halen.

Praktijk

Maak de 1 quiz over de inhoud van dit onderwerp.

Cursusnavigatie

Quiz — Lookahead   |   Quiz — Asserties


💪 Of ga direct naar de oefeningen in deze sectie.