Regular Expression Syntax Cheat Sheet
Diese Seite bietet eine umfassende Übersicht über alle Möglichkeiten der RegExp-Syntax, indem der Inhalt der Artikel im RegExp-Leitfaden zusammengefasst wird. Wenn Sie mehr Informationen zu einem bestimmten Thema benötigen, folgen Sie bitte dem Link in der entsprechenden Überschrift, um den vollständigen Artikel zu lesen, oder besuchen Sie den Leitfaden.
Zeichenklassen
Zeichenklassen unterscheiden Arten von Zeichen, wie zum Beispiel das Unterscheiden zwischen Buchstaben und Ziffern.
| Zeichen | Bedeutung |
|---|---|
[xyz]
|
Zeichenklasse: Passt zu einem der eingeschlossenen Zeichen. Sie können einen Bereich von Zeichen angeben, indem Sie einen Bindestrich verwenden, aber wenn der Bindestrich als erstes oder letztes Zeichen in den eckigen Klammern erscheint, wird er als ein literaler Bindestrich betrachtet, der in die Zeichenklasse als normales Zeichen aufgenommen wird.
Zum Beispiel ist
Zum Beispiel passen
Zum Beispiel ist |
|
|
Negierte Zeichenklasse:
Passt auf alles, was nicht in den eckigen Klammern enthalten ist. Sie können einen Bereich von Zeichen angeben, indem Sie einen Bindestrich verwenden, aber wenn der Bindestrich als erstes Zeichen nach dem Hinweis: Das ^ Zeichen kann auch den Anfang der Eingabe anzeigen. |
. |
Wildcard:
Passt auf jedes einzelne Zeichen außer Zeilenbeendigungszeichen:
|
\d |
Ziffern-Zeichenklasse Escape:
Passt zu jeder Ziffer (Arabische Ziffer). Entspricht |
\D |
Nicht-Ziffer-Zeichenklasse Escape:
Passt zu jedem Zeichen, das keine Ziffer (Arabische Ziffer) ist. Entspricht
|
\w |
Wort-Zeichenklasse Escape:
Passt zu jedem alphanumerischen Zeichen des Grund-Alphabets (Latein),
einschließlich des Unterstrichs. Entspricht |
\W |
Nicht-Wort-Zeichenklasse Escape:
Passt zu jedem Zeichen, das kein Wort-Zeichen des grundlegenden
Lateinalphabets ist. Entspricht |
\s |
Whitespace-Zeichenklasse Escape:
Passt zu einem einzelnen Whitespace-Zeichen, einschließlich Leerzeichen, Tab, Form
Feed, Zeilenumbruch und anderen Unicode-Leerzeichen. Entspricht
|
\S |
Nicht-Whitespace-Zeichenklasse Escape:
Passt zu einem einzelnen Zeichen, das kein Leerzeichen ist. Entspricht
|
\t |
Passt zu einem horizontalen Tabulator. |
\r |
Passt zu einem Wagenrücklauf (Carriage Return). |
\n |
Passt zu einem Zeilenumbruch. |
\v |
Passt zu einem vertikalen Tabulator. |
\f |
Passt zu einem Form-Feed. |
[\b] |
Passt zu einem Backspace. Wenn Sie nach der Wortgrenzen-Bestätigung
(\b) suchen, siehe
Assertions.
|
\0 |
Passt zu einem NUL-Zeichen. Folgen Sie diesem nicht mit einer weiteren Ziffer. |
\cX
|
Passt zu einem Steuerzeichen unter Verwendung von
Caret-Notation, wobei "X" ein Buchstabe von A–Z oder a–z ist (entspricht Codepunkten
|
\xhh
|
Hex Escape:
Passt zum Zeichen mit dem Code hh (zwei
hexadezimale Ziffern).
|
\uHHHH
|
Unicode Escape:
Passt zu einer UTF-16 Code-Einheit mit dem Wert
HHHH (vier hexadezimale Ziffern).
|
\u{H…H}
|
Unicode Code Point Escape:
(Nur wenn das u Flag gesetzt ist.) Passt zum Zeichen mit
dem Unicode-Wert U+H…H (1 bis 6 hexadezimale Ziffern).
|
\p{UnicodeProperty},
\P{UnicodeProperty}
|
Unicode-Zeichenklasse Escape: Passt zu einem Zeichen basierend auf seinen Unicode-Zeicheneigenschaften: zum Beispiel Emoji-Zeichen, japanische Katakana-Zeichen oder chinesische/japanische Han/Kanji-Zeichen, usw. |
\ |
Gibt an, dass das folgende Zeichen speziell behandelt oder "escaped" werden soll. Es verhält sich auf zwei Arten.
Hinweis: Um dieses Zeichen wörtlich abzugleichen, escapen Sie es mit sich selbst. Mit anderen Worten: Um nach |
x|y
|
Disjunktion:
Passt entweder zu "x" oder zu "y". Jede Komponente, die durch ein Pipe-Zeichen (
Hinweis: Eine Disjunktion ist eine andere Möglichkeit, "eine Reihe von Auswahlmöglichkeiten" zu spezifizieren, ist aber keine Zeichenklasse. Disjunktionen sind keine Atome — Sie müssen eine Gruppe verwenden, um sie Teil eines größeren Musters zu machen. |
Assertions
Assertions umfassen Grenzen, die den Anfang und das Ende von Zeilen und Wörtern anzeigen, und andere Muster, die auf irgendeine Weise angeben, dass ein Abgleich möglich ist (einschließlich Look-Ahead, Look-Behind und bedingter Ausdrücke).
Grenztyp-Assertions
| Zeichen | Bedeutung |
|---|---|
^ |
Eingabebegrenzung Start-Assertion:
Passt zum Anfang der Eingabe. Wenn das Hinweis: Dieses Zeichen hat eine andere Bedeutung, wenn es am Anfang einer Zeichenklasse vorkommt. |
$ |
Eingabebegrenzung Ende-Assertion:
Passt zum Ende der Eingabe. Wenn das |
\b |
Wortgrenzen-Assertion: Passt zu einer Wortgrenze. Dies ist die Position, an der ein Wortzeichen nicht von einem anderen Wortzeichen gefolgt oder vorangegangen wird, wie zwischen einem Buchstaben und einem Leerzeichen. Beachten Sie, dass eine übereinstimmende Wortgrenze nicht im Match enthalten ist. Anders ausgedrückt, die Länge einer übereinstimmenden Wortgrenze ist Null. Beispiele:
Um ein Rückschrittzeichen ( |
\B |
Nicht-Wortgrenzen-Assertion:
Passt zu einer Nicht-Wortgrenze. Dies ist eine Position, an der das vorherige und
nächste Zeichen vom gleichen Typ sind: Entweder müssen beide Worte sein, oder
beide müssen Nicht-Worte sein, zum Beispiel zwischen zwei Buchstaben oder zwischen zwei
Leerzeichen. Der Anfang und das Ende einer Zeichenfolge werden als Nicht-Wörter betrachtet.
Genauso wie die übereinstimmende Wortgrenze ist die übereinstimmende Nicht-Wortgrenze
auch nicht im Match enthalten. Zum Beispiel,
|
Andere Assertions
Hinweis:
Das ? Zeichen kann auch als Quantifikator verwendet werden.
| Zeichen | Bedeutung |
|---|---|
x(?=y) |
Lookahead-Assertion:
Passt zu "x", nur wenn "x" von "y"
gefolgt wird. Zum Beispiel passt |
x(?!y) |
Negative Lookahead-Assertion:
Passt zu "x", nur wenn "x"
nicht von "y" gefolgt wird. Zum Beispiel passt |
(?<=y)x |
Lookbehind-Assertion:
Passt zu "x", nur wenn "x" von "y"
vorausgeht. Zum Beispiel,
|
(?<!y)x |
Negative Lookbehind-Assertion:
Passt zu "x", nur wenn
"x" nicht von "y" vorausgeht. Zum Beispiel,
|
Gruppen und Rückbezüge
Gruppen und Rückbezüge kennzeichnen Gruppen von Ausdruckszeichen.
| Zeichen | Bedeutung |
|---|---|
(x) |
Gruppe erkennbar aufnehmen:
Passt zu
Ein regulärer Ausdruck kann mehrere erfassende Gruppen haben. In Ergebnissen,
werden Übereinstimmungen mit erfassenden Gruppen typischerweise in einem Array angezeigt, dessen Mitglieder in
der gleichen Reihenfolge sind wie die linken Klammern in der erfassenden Gruppe. Dies ist
normalerweise einfach die Reihenfolge der erfassenden Gruppen selbst. Dies
wird wichtig, wenn erfassende Gruppen verschachtelt sind. Übereinstimmungen werden
über den Index der Elemente des Ergebnisses zugegriffen ( Erfassen von Gruppen hat eine Leistungseinbuße. Wenn Sie den erfassten Unterstring nicht erneut abrufen müssen, bevorzugen Sie nicht-erfassende Klammern (siehe unten).
|
(?<Name>x) |
Benannte erfassende Gruppe:
Passt zu "x" und speichert es in der
"groups"-Eigenschaft der zurückgegebenen Übereinstimmungen unter dem angegebenen Namen
durch
Zum Beispiel, um die US-Vorwahl aus einer Telefonnummer
zu extrahieren, könnten wir |
(?:x) |
Nicht-erfassende Gruppe:
Passt zu "x", merkt sich aber den
Match nicht. Die übereinstimmende Teilzeichenfolge kann nicht aus dem resultierenden
Array der Elemente zurückgerufen werden ( |
(?flags:x), (?flags-flags:x) |
Modifier:
Aktiviert oder deaktiviert die angegebenen Flags nur für das eingeschlossene Muster. Nur die |
\n
|
Rückbezug:
Wo "n" eine positive Ganzzahl ist. Passt dieselbe Teilzeichenfolge, die von
der n-ten erfassenden Gruppe im regulären Ausdruck
(zählend von links nach rechts) erfasst wurde. Zum Beispiel,
|
\k<Name> |
Benannter Rückbezug:
Ein Rückbezug auf die letzte übereinstimmende Teilzeichenfolge der
Benannten erfassenden Gruppe festgelegt durch
Zum Beispiel,
Hinweis: |
Quantifizierer
Quantifizierer geben die Anzahl von Zeichen oder Ausdrücken an, die abgeglichen werden sollen.
Hinweis: Im Folgenden bezieht sich Item nicht nur auf einzelne Zeichen, sondern umfasst auch Zeichenklassen und Gruppen und Rückbezüge.
| Zeichen | Bedeutung |
|---|---|
x*
|
Passt das vorhergehende Element "x" 0 oder mehr Mal. Zum Beispiel,
|
x+
|
Passt das vorhergehende Element "x" 1 oder mehr Mal. Entspricht
|
x?
|
Passt das vorhergehende Element "x" 0 oder 1 Mal. Zum Beispiel,
Wenn direkt nach einem der Quantifizierer |
x{n}
|
Wo "n" eine nicht-negative Ganzzahl ist, passt genau zu "n" Vorkommen des
vorhergehenden Elements "x". Zum Beispiel passt |
x{n,}
|
Wo "n" eine nicht-negative Ganzzahl ist, passt zu mindestens "n" Vorkommen des
vorhergehenden Elements "x". Zum Beispiel passt |
x{n,m}
|
Wo "n" und "m" nicht-negative Ganzzahlen sind und |
|
|
Standardmäßig sind Quantifizierer wie
Hinweis: Das Hinzufügen von |