Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Reguläre Ausdrücke / Lookaround-Assertions

Lookbehind

Ein Lookbehind prüft, was unmittelbar vor der aktuellen Position kommt:

  • <?after …> — gelingt, wenn der Text davor trifft (bejahender Lookbehind)
  • <!after …> — gelingt, wenn der Text davor nicht trifft (verneinender Lookbehind)

Damit können Sie etwas nur wegen dessen treffen, was ihm vorausgeht, ohne dieses Präfix ins Ergebnis aufzunehmen. Fangen Sie etwa die Ziffern hinter einem Dollarzeichen ein, aber lassen Sie das $ außerhalb des Treffers:

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

Die Zusicherung <?after '$'> verlangt ein $ unmittelbar vor der aktuellen Position, dann trifft \d+ die Ziffern. Der Treffer ist 100, ohne das Dollarzeichen.

Lookahead und Lookbehind werden oft verbunden. Ein Stück Text, umgeben von <?after …> und <?before …>, trifft nur dann, wenn es zwischen den verlangten Nachbarn steht — ein praktischer Weg, einen Wert aus einem bekannten Zusammenhang zu ziehen.

Praxis

Lösen Sie 1 Quiz zum Inhalt dieses Themas.

Kursnavigation

Quiz — Lookahead   |   Quiz — Assertions


💪 Oder springen Sie direkt zu den Übungen dieses Abschnitts.