Es ist ein positiver Lookbehind .
(?<=a)b
(positive lookbehind) stimmt mit derb
(und nur derb
) incab
überein, stimmt aber nicht mitbed
oderdebt
überein.
Sie werden es in keinem JavaScript-Handbuch finden, da in JavaScript regex nicht unterstützt wird :
Schließlich unterstützen Flavors wie JavaScript, Ruby und Tcl überhaupt kein Lookbehind, obwohl sie Lookahead unterstützen.
Aus der Python-Dokumentation re
:
(?<=...)
%Vor%Entspricht, wenn der aktuellen Position in der Zeichenfolge eine Übereinstimmung für
...
vorangestellt ist, die an der aktuellen Position endet. Dies wird als positive Lookbehind-Assertion bezeichnet.(?<=abc)def
findet eine Übereinstimmung inabcdef
, da das Lookbehind 3 Zeichen sichert und überprüft, ob das enthaltene Muster übereinstimmt. Das enthaltene Muster darf nur Strings mit fester Länge enthalten, dhabc
odera|b
sind erlaubt,a*
unda{3,4}
nicht. Beachten Sie, dass Muster, die mit positiven Lookbehind-Assertionen beginnen, am Anfang der zu durchsuchenden Zeichenfolge nicht übereinstimmen. Sie werden höchstwahrscheinlich die Funktion search () anstelle der Funktion match () verwenden wollen:
%Vor%Dieses Beispiel sucht nach einem Bindestrich nach einem Wort:
Es heißt ein positiver Blick hinter sich, es sucht rückwärts nach dem Zeichen x, beachten Sie, dass dies von JavaScript nicht unterstützt wird. Für zukünftige Referenz, hier ist ein besseres Handbuch :)
Von regulary-expressions.info :
Null-Breite positiver Lookbehind. Passt zu einer Position, wenn das Muster innerhalb des Lookahead angepasst werden kann und an dieser Position endet (d. H. Links von dieser Position). Abhängig von der Regex-Variante, die Sie verwenden, können Sie innerhalb von Lookbehind möglicherweise keine Quantifizierer und / oder Alternativen verwenden.
Tags und Links regex