Syntax-Schummelzettel für reguläre Ausdrücke
Diese Seite bietet einen umfassenden Schummelzettel zu allen Fähigkeiten der RegExp-Syntax, indem sie den Inhalt der Artikel im RegExp-Leitfaden zusammenfasst. Falls Sie mehr Informationen zu einem bestimmten Thema benötigen, folgen Sie bitte dem Link in der entsprechenden Überschrift, um den vollständigen Artikel zu erreichen oder besuchen Sie den Leitfaden.
Zeichenklassen
Zeichenklassen unterscheiden Arten von Zeichen, zum Beispiel zwischen Buchstaben und Ziffern.
| Zeichen | Bedeutung |
|---|---|
[xyz]
|
Zeichenklasse: Passt zu einem der eingeschlossenen Zeichen. Sie können einen Bereich von Zeichen mit einem Bindestrich angeben, aber wenn der Bindestrich als erstes oder letztes Zeichen in den eckigen Klammern erscheint, wird er als literaler Bindestrich verstanden, der in die Zeichenklasse als normales Zeichen aufgenommen wird.
Zum Beispiel ist
Zum Beispiel passen
Zum Beispiel entspricht |
|
|
Negierte Zeichenklasse:
Passt zu allem, was nicht in den eckigen Klammern eingeschlossen ist. Sie können einen Bereich von Zeichen mit einem Bindestrich angeben, aber wenn der Bindestrich als erstes Zeichen nach dem Hinweis: Das ^-Zeichen kann auch für den Anfang der Eingabe stehen. |
. |
Wildcard:
Passt zu jedem einzelnen Zeichen außer Zeilenendzeichen: |
\d |
Ziffern-Zeichenklasse-Escape:
Passt zu jeder Ziffer (arabische Ziffern). Entspricht |
\D |
Nicht-Ziffern-Zeichenklasse-Escape:
Passt zu jedem Zeichen, das keine Ziffer (arabische Ziffern) ist. Entspricht |
\w |
Wort-Zeichenklasse-Escape:
Passt zu jedem alphanumerischen Zeichen aus dem lateinischen Alphabet, einschließlich des Unterstrichs. Entspricht |
\W |
Nicht-Wort-Zeichenklasse-Escape:
Passt zu jedem Zeichen, das kein Wortzeichen aus dem lateinischen Alphabet ist. Entspricht |
\s |
Leerzeichen-Zeichenklasse-Escape:
Passt zu einem einzelnen Leerzeichenzeichen, einschließlich Leerzeichen, Tabulator, Form Feed, Zeilen Feed und anderen Unicode-Leerzeichen. Entspricht |
\S |
Nicht-Leerzeichen-Zeichenklasse-Escape:
Passt zu einem einzelnen Zeichen, das kein Leerzeichen ist. Entspricht |
\t |
Entspricht einem horizontalen Tabulator. |
\r |
Entspricht einem Wagenrücklauf. |
\n |
Entspricht einem Zeilenumbruch. |
\v |
Entspricht einem vertikalen Tabulator. |
\f |
Entspricht einem Form Feed. |
[\b] |
Entspricht einem Rückschritt. Wenn Sie nach der Wortgrenzenbehauptung (\b) suchen, siehe
Behauptungen.
|
\0 |
Entspricht einem NUL-Zeichen. Folgen Sie diesem nicht mit einer weiteren Ziffer. |
\cX
|
Entspricht einem Steuerzeichen unter Verwendung der
Caret-Notation, wobei "X" ein Buchstabe von A–Z oder a–z ist (entsprechend den Codepunkten |
\xhh
|
Entspricht dem Zeichen mit dem Code hh (zwei hexadezimale Ziffern).
|
\uhhhh
|
Entspricht einer UTF-16-Code-Einheit mit dem Wert
hhhh (vier hexadezimale Ziffern).
|
\u{hhhh} oder \u{hhhhh}
|
(Nur wenn das u-Flag gesetzt ist.) Entspricht dem Zeichen mit dem Unicode-Wert U+hhhh oder U+hhhhh
(hexadezimale Ziffern).
|
\p{UnicodeProperty},
\P{UnicodeProperty}
|
Unicode-Zeichenklasse-Escape: Passt zu einem Zeichen basierend auf seinen Unicode-Zeicheneigenschaften: zum Beispiel Emoji-Zeichen oder japanische Katakana-Zeichen oder chinesische/japanische Han/Kanji-Zeichen, etc.). |
\ |
Gibt an, dass das folgende Zeichen besonders behandelt oder "escaped" werden soll. Es verhält sich auf zwei Arten.
Hinweis: Um dieses Zeichen wörtlich zu erfassen, escapen Sie es mit sich selbst. Mit anderen Worten, um nach |
x|y
|
Disjunktion:
Passt entweder zu "x" oder "y". Jede Komponente, die durch einen Pipe (
Hinweis: Eine Disjunktion ist eine andere Möglichkeit, "eine Reihe von Optionen" anzugeben, aber es ist keine Zeichenklasse. Disjunktionen sind keine Atome — Sie müssen eine Gruppe verwenden, um sie zu einem größeren Muster zu machen. |
Behauptungen
Behauptungen umfassen Grenzen, die die Anfänge und Enden von Zeilen und Wörtern anzeigen, sowie andere Muster, die auf irgendeine Weise anzeigen, dass eine Übereinstimmung möglich ist (einschließlich Look-Ahead, Look-Behind und bedingten Ausdrücken).
Grenzbezogene Behauptungen
| Zeichen | Bedeutung |
|---|---|
^ |
Eingangsgrenze-Anfangsbehauptung:
Passt zum Beginn der Eingabe. Wenn das Hinweis: Dieses Zeichen hat eine andere Bedeutung, wenn es am Anfang einer Zeichenklasse erscheint. |
$ |
Eingangsgrenze-Endebehauptung:
Passt zum Ende der Eingabe. Wenn das |
\b |
Wortgrenzenbehauptung: Passt zu einer Wortgrenze. Dies ist die Position, an der ein Wortzeichen nicht von einem anderen Wortzeichen gefolgt oder davor steht, wie zwischen einem Buchstaben und einem Leerzeichen. Beachten Sie, dass eine passende Wortgrenze nicht im Match enthalten ist. Mit anderen Worten, die Länge einer passenden Wortgrenze ist null. Beispiele:
Um ein Rückschrittzeichen ( |
\B |
Nicht-Wortgrenzenbehauptung:
Passt zu einer Nicht-Wortgrenze. Dies ist eine Position, bei der das vorherige und das nächste Zeichen vom gleichen Typ sind: Entweder müssen beide Wörter sein oder beide müssen Nicht-Wörter sein, zum Beispiel zwischen zwei Buchstaben oder zwischen zwei Leerzeichen. Der Anfang und das Ende eines Strings werden als Nicht-Wörter betrachtet. Ebenso wird die passende Nicht-Wortgrenze nicht im Match enthalten sein. Zum Beispiel passt |
Andere Behauptungen
Hinweis:
Das Zeichen ? kann auch als Quantifizierer verwendet werden.
| Zeichen | Bedeutung |
|---|---|
x(?=y) |
Lookahead-Behauptung:
Passt zu "x", nur wenn "x" von "y" gefolgt wird. Zum Beispiel passt |
x(?!y) |
Negative Lookahead-Behauptung:
Passt zu "x", nur wenn "x" nicht von "y" gefolgt wird. Zum Beispiel passt |
(?<=y)x |
Lookbehind-Behauptung:
Passt zu "x", nur wenn "x" von "y" vorausgegangen wird. Zum Beispiel passt |
(?<!y)x |
Negative Lookbehind-Behauptung:
Passt zu "x", nur wenn "x" nicht von "y" vorausgegangen wird. Zum Beispiel passt |
Gruppen und Rückverweise
Gruppen und Rückverweise kennzeichnen Gruppen von Ausdruckszeichen.
| Zeichen | Bedeutung |
|---|---|
(x) |
Capturing-Group:
Passt zu
Ein regulärer Ausdruck kann mehrere Capturing-Groups enthalten. In Ergebnissen erscheinen Übereinstimmungen zu den Capturing-Groups typischerweise in einem Array, dessen Mitglieder in derselben Reihenfolge sind wie die linken Klammern in der Capturing-Group. Dies ist normalerweise einfach die Reihenfolge der Capturing-Groups selbst. Dies wird wichtig, wenn Capturing-Groups geschachtelt sind. Matches werden mit dem Index der Elemente des Ergebnisses abgerufen ( Capturing-Groups haben einen Leistungseinbruch. Wenn Sie den gematchten Unterstring nicht abrufen müssen, verwenden Sie lieber nicht-erfassende Klammern (siehe unten).
|
(?<Name>x) |
Named Capturing-Group:
Passt zu "x" und speichert es im Gruppen-Eigenschaft der zurückgegebenen Matches unter dem angegebenen Namen
Zum Beispiel, um den Gebietscode der Vereinigten Staaten aus einer Telefonnummer zu extrahieren, könnten wir |
(?:x) |
Nicht-erfassende Gruppe:
Passt zu "x" merkt sich aber nicht das Match. Der gematchte Unterstring kann nicht von den Elementen des resultierenden Arrays ( |
(?flags:x), (?flags-flags:x) |
Modifier:
Aktiviert oder deaktiviert die angegebenen Flags nur für das eingeschlossene Muster. Nur die Flags |
\n
|
Rückverweis:
Wobei "n" eine positive ganze Zahl ist. Passt zu demselben Unterstring, der von der nth-Capturing-Group im regulären Ausdruck gematched wurde (Anzahl der linken Klammern). Zum Beispiel, |
\k<Name> |
Named Rückverweis:
Ein Rückverweis auf den letzten Unterstring, der von der Named Capturing-Group mit
Zum Beispiel
Hinweis: |
Quantifizierer
Quantifizierer geben die Anzahl der Zeichen oder Ausdrücke an, die übereinstimmen sollen.
Hinweis: Im Folgenden bezieht sich Element nicht nur auf einzelne Zeichen, sondern schließt auch Zeichenklassen sowie Gruppen und Rückverweise ein.
| Zeichen | Bedeutung |
|---|---|
x*
|
Passt das vorhergehende Element "x" 0 oder mehrmals. Zum Beispiel, |
x+
|
Passt das vorhergehende Element "x" 1 oder mehrmals. Entspricht |
x?
|
Passt das vorhergehende Element "x" 0 oder 1 Mal. Zum Beispiel passt
Wenn es unmittelbar nach einem der Quantifizierer |
x{n}
|
Wobei "n" eine nicht-negative ganze Zahl ist, passt genau "n" Vorkommen des vorhergehenden Elements "x". Zum Beispiel passt |
x{n,}
|
Wobei "n" eine nicht-negative ganze Zahl ist, passt mindestens "n" Vorkommen des vorhergehenden Elements "x". Zum Beispiel passt |
x{n,m}
|
Wobei "n" und "m" nicht-negative ganze Zahlen und |
|
|
Standardmäßig sind Quantifizierer wie
Hinweis: Das Hinzufügen von |