Lektionen des Moduls (3/4)
Lookbehind: `(?<=...)` `(?<!...)`
Lookbehinds (Rückschauen) sind das Spiegelbild von Lookaheads: Sie blicken hinter die aktuelle Position und sind ebenfalls von der Breite Null.
(?<=...)-- positives Lookbehind: Das Muster muss vorausgehen.(?<!...)-- negatives Lookbehind: Das Muster darf NICHT vorausgehen.
Pattern: (?<=\$)\d+
Sample: Costo $100, sconto -25, totale $75.
^^^ ^^Das $ ist nicht im Treffer, sondern fungiert als Bedingung: Nur Ziffern, denen das Dollarzeichen vorausgeht, matcht die Engine.
Negatives Lookbehind
Pattern: (?<!\w)\d+
Sample: Codice abc123 e numero 456.
^^^(?<!\w) erfordert, dass vor den Ziffern KEIN Wortzeichen steht: abc123 wird ausgeschlossen (vor 123 steht c, ein \w), 456 matcht (davor steht ein Leerzeichen).
Hauptunterschied zum nicht-erfassenden Gruppe
\$\d+ matcht "$100": Der Treffer enthält das Dollarzeichen.
(?<=\$)\d+ matcht "100": Der Treffer enthält NUR die Ziffern.Wenn du den "reinen" Wert ohne das Präfix extrahieren musst, ist Lookbehind die richtige Wahl.
Lookbehind-Kompatibilität in JavaScript
Positives (?<=...) und negatives (?<!...) Lookbehind prüfen, was der aktuellen Position vorausgeht. In JavaScript werden sie ab ES2018 unterstützt; in älteren Browsern oder Legacy-Node.js-Engines würden sie Syntax-Kompilierungsfehler verursachen.
Probiere es aus
Extrahiere nur den numerischen Betrag (ohne das $-Zeichen) aus den Preisen im Text.
Hinweis anzeigen
Verschiebe \$ in ein positives Lookbehind (?<=\$): Eine Positionsbedingung, kein Teil des Treffers.
Lösung nach 3 Versuchen verfügbar
Wiederholungsübung
Finde jede Ziffernfolge, der kein Buchstabe oder keine Ziffer vorausgeht (d. h. 'isolierte' Zahlen, keine Teile von Code wie `abc123`).
Hinweis anzeigen
Verwende ein negatives Lookbehind (?<!\w), um auszuschließen, wenn davor ein Buchstabe oder eine Ziffer steht.
Lösung nach 3 Versuchen verfügbar
Zusätzliche Herausforderung
Finde nur die Ziffern negativer Zahlen (Ziffern, denen das `-`-Zeichen vorausgeht), und schließe das Minuszeichen aus dem Treffer aus.
Hinweis anzeigen
Verschiebe das Minuszeichen - in ein positives Lookbehind (?<=-).
Lösung nach 3 Versuchen verfügbar