Lookarounds sind Zusicherungen mit einer Breite von Null. Sie suchen nach einem regulären Ausdruck (rechts oder links von der aktuellen Position - basierend auf vorne oder hinten), sind erfolgreich oder scheitern, wenn eine Übereinstimmung gefunden wird (basierend darauf, ob sie positiv oder negativ ist) und verwerfen den übereinstimmenden Teil. Sie verbrauchen kein Zeichen - die Übereinstimmung mit dem ihnen folgenden regulären Ausdruck (falls vorhanden) beginnt an derselben Cursorposition.
Lesen Sie regelmäßig-expression.info für weitere Details.
Syntax:
(?=REGEX_1)REGEX_2
Nur übereinstimmen, wenn REGEX_1 übereinstimmt; Nach dem Abgleich von REGEX_1 wird der Abgleich verworfen und die Suche nach REGEX_2 beginnt an derselben Position.
Beispiel:
(?=[a-z0-9]{4}$)[a-z]{1,2}[0-9]{2,3}
REGEX_1 [a-z0-9]{4}$
entspricht vier alphanumerischen Zeichen, gefolgt vom Zeilenende.
REGEX_2 [a-z]{1,2}[0-9]{2,3}
entspricht einem oder zwei Buchstaben, gefolgt von zwei oder drei Ziffern.
REGEX_1 stellt sicher, dass die Länge der Zeichenfolge zwar 4 beträgt, verbraucht jedoch keine Zeichen, sodass die Suche nach REGEX_2 an derselben Stelle beginnt. Jetzt stellt REGEX_2 sicher, dass die Zeichenfolge mit einigen anderen Regeln übereinstimmt. Ohne Vorausschau würde es zu Saiten mit einer Länge von drei oder fünf passen.
Syntax:
(?!REGEX_1)REGEX_2
Nur übereinstimmen, wenn REGEX_1 nicht übereinstimmt. Nach Überprüfung von REGEX_1 beginnt die Suche nach REGEX_2 an derselben Position.
Beispiel:
(?!.*\bFWORD\b)\w{10,30}$
Der Look-Ahead-Teil sucht nach dem FWORD
in der Zeichenfolge und schlägt fehl, wenn er es findet. Wenn es nicht gefunden wird FWORD
, ist die Vorausschau erfolgreich und der folgende Teil überprüft, ob die Länge der Zeichenfolge zwischen 10 und 30 liegt und nur Wortzeichen enthälta-zA-Z0-9_
Look-Behind ähnelt Look-Ahead: Es schaut nur hinter die aktuelle Cursorposition. Einige Regex-Varianten wie Javascript unterstützen keine Behind-Behind-Behauptungen. Und die meisten Varianten, die dies unterstützen (PHP, Python usw.), erfordern, dass dieser Look-Behind-Teil eine feste Länge hat.
- Atomgruppen verwerfen / vergessen grundsätzlich die nachfolgenden Token in der Gruppe, sobald ein Token übereinstimmt. Auf dieser Seite finden Sie Beispiele für Atomgruppen