Spickzettel zur Syntax von regulären Ausdrücken
Diese Seite bietet einen allgemeinen Spickzettel zu allen 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, bitte folgen Sie dem Link der entsprechenden Überschrift, um auf den vollständigen Artikel zuzugreifen, oder gehen Sie zum Leitfaden.
Zeichensatzklassen
Zeichensatzklassen unterscheiden Arten von Zeichen, wie zum Beispiel 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. Wenn der Bindestrich jedoch als erstes oder letztes Zeichen in den eckigen Klammern erscheint, wird er als buchstäblicher Bindestrich interpretiert, der in die Zeichenklasse als normales Zeichen aufgenommen wird.
Zum Beispiel ist
Zum Beispiel passen
Zum Beispiel ist |
|
|
Negierte Zeichenklasse:
Passt zu allem, was nicht in den eckigen Klammern eingeschlossen 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 Zeilenabschlusszeichen:
|
\d |
Ziffern-Zeichenklassen-Escape:
Passt auf jede Ziffer (arabische Zahl). Entspricht |
\D |
Nicht-Ziffern-Zeichenklassen-Escape:
Passt zu jedem Zeichen, das keine Ziffer (arabische Zahl) ist. Entspricht
|
\w |
Wort-Zeichenklassen-Escape:
Passt auf jedes alphanumerische Zeichen aus dem Basis-Latein-Alphabet,
einschließlich des Unterstrichs. Entspricht |
\W |
Nicht-Wort-Zeichenklassen-Escape:
Passt zu jedem Zeichen, das kein Wortzeichen aus dem Basis-Latein-Alphabet ist. Entspricht |
\s |
Leerzeichen-Zeichenklassen-Escape:
Passt auf ein einzelnes Leerzeichen-Zeichen, einschließlich Leerzeichen, Tabulator, Form Feed, Zeilenumbruch und andere Unicode-Leerzeichen. Entspricht |
\S |
Nicht-Leerzeichen-Zeichenklassen-Escape:
Passt auf ein einzelnes Zeichen, das kein Leerzeichen ist. Entspricht |
\t |
Passt auf einen horizontalen Tabulator. |
\r |
Passt auf einen Zeilenumbruch. |
\n |
Passt auf einen Zeilenumbruch. |
\v |
Passt auf eine vertikale Tabulator. |
\f |
Passt auf ein Form Feed. |
[\b] |
Passt auf ein Backspace. Wenn Sie nach der Wortgrenzen-Assertion
(\b) suchen, siehe
Assertions.
|
\0 |
Passt auf ein NUL-Zeichen. Folgen Sie diesem nicht mit einer weiteren Ziffer. |
\cX
|
Passt auf ein Steuerzeichen unter Verwendung der
Caret-Notation, wobei "X" ein Buchstabe von A–Z oder a–z ist (entsprechend den Codepunkten |
\xhh
|
Passt auf das Zeichen mit dem Code hh (zwei hexadezimale Ziffern).
|
\uhhhh
|
Passt auf eine UTF-16 Code-Einheit mit dem Wert
hhhh (vier hexadezimale Ziffern).
|
\u{hhhh} oder \u{hhhhh}
|
(Nur wenn das u-Flag gesetzt ist.) Passt auf das Zeichen mit dem Unicode-Wert U+hhhh oder U+hhhhh (hexadezimale Ziffern).
|
\p{UnicodeProperty},
\P{UnicodeProperty}
|
Unicode-Zeichenklassen-Escape: Passt auf ein Zeichen basierend auf seinen Unicode-Zeichen-Eigenschaften: zum Beispiel, Emoji-Zeichen, oder japanische katakana Zeichen, oder chinesische/japanische Han/Kanji-Zeichen, usw.). |
\ |
Gibt an, dass das folgende Zeichen speziell behandelt oder "escaped" werden sollte. Es verhält sich auf eine von zwei Arten.
Hinweis: Um dieses Zeichen wörtlich zu passen, escape it mit sich selbst. Mit anderen Worten, um nach |
x|y
|
Disjunktion:
Passt zu "x" oder "y". Jedes Element, getrennt durch ein Pipe-Symbol (
Hinweis: Eine Disjunktion ist ein weiterer Weg, ein "Set von Wahlmöglichkeiten" anzugeben, 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 beinhalten Grenzmarkierungen, 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).
Grenzmarkierungs-Assertions
| Zeichen | Bedeutung |
|---|---|
^ |
Anfangsmarkierung-Assertion:
Passt zum Anfang der Eingabe. Wenn das Hinweis: Dieses Zeichen hat eine andere Bedeutung, wenn es am Anfang einer Zeichenklasse erscheint. |
$ |
Endmarkierung-Assertion:
Passt zum Ende der Eingabe. Wenn das |
\b |
Wortgrenze-Assertion: Passt zu einer Wortgrenze. Dies ist die Position, an der ein Wortzeichen nicht von einem anderen Wortzeichen gefolgt oder vorhergegangen wird, zum Beispiel zwischen einem Buchstaben und einem Leerzeichen. Beachten Sie, dass eine übereinstimmende Wortgrenze nicht in der Übereinstimmung enthalten ist. Mit anderen Worten, die Länge einer übereinstimmenden Wortgrenze ist null. Beispiele:
Um ein Backspace-Zeichen ( |
\B |
Nicht-Wortgrenze-Assertion:
Passt zu einer Nicht-Wortgrenze. Dies ist eine Position, an der das vorherige und das nächste Zeichen vom gleichen Typ sind: Beide müssen entweder Wörter oder beide müssen Nicht-Wörter sein, zum Beispiel zwischen zwei Buchstaben oder zwischen zwei Leerzeichen. Der Beginn und das Ende einer Zeichenfolge werden als Nicht-Wörter angesehen. Ebenso wie die übereinstimmende Wortgrenze ist auch die übereinstimmende Nicht-Wortgrenze nicht in der Übereinstimmung enthalten. Zum Beispiel passt |
Andere Assertions
Hinweis:
Das ? Zeichen kann auch als Quantifizierer verwendet werden.
| Zeichen | Bedeutung |
|---|---|
x(?=y) |
Lookahead-Assertion:
Passt zu "x" nur dann, wenn "x" von "y" gefolgt wird. Zum Beispiel passt |
x(?!y) |
Negative Lookahead-Assertion:
Passt zu "x" nur dann, wenn "x" nicht von "y" gefolgt wird. Zum Beispiel passt |
(?<=y)x |
Lookbehind-Assertion:
Passt zu "x" nur dann, wenn "x" von "y" vorhergegangen wird. Zum Beispiel, |
(?<!y)x |
Negative Lookbehind-Assertion:
Passt zu "x" nur dann, wenn "x" nicht von "y" vorhergegangen wird. Zum Beispiel, |
Gruppen und Rückverweise
Gruppen und Rückverweise zeigen Gruppen von Ausdruckszeichen an.
| Zeichen | Bedeutung |
|---|---|
(x) |
Erfassungsgruppe:
Passt zu
Ein regulärer Ausdruck kann mehrere Erfassungsgruppen haben. In den Ergebnissen werden Übereinstimmungen zu Erfassungsgruppen typischerweise in einem Array gespeichert, dessen Mitglieder in der gleichen Reihenfolge wie die linken Klammern in der Erfassungsgruppe sind. Dies ist normalerweise einfach die Reihenfolge der Erfassungsgruppen selbst. Dies wird wichtig, wenn Erfassungsgruppen geschachtelt sind. Übereinstimmungen werden mit dem Index der Elemente der Ergebnisse ( Erfassungsgruppen haben einen Leistungseinbruch. Wenn Sie den übereinstimmenden Teilstring nicht abrufen müssen, bevorzugen Sie nicht-erfassende Klammern (siehe unten).
|
(?<Name>x) |
Benannte Erfassungsgruppe:
Passt zu "x" und speichert es unter dem Namen, der von
Zum Beispiel, um die Vorwahl der USA aus einer Telefonnummer zu extrahieren, könnten wir |
(?:x) |
Nicht-erfassende Gruppe:
Passt zu "x", merkt sich die Übereinstimmung jedoch nicht. Der übereinstimmende Teilstring 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 |
\n
|
Rückverweis:
Wo "n" eine positive ganze Zahl ist. Passt zu demselben Teilstring, der von der n-ten erfassten Gruppe im regulären Ausdruck (Start mit den linken Klammern) übereinstimmt. Zum Beispiel, |
\k<Name> |
Benannter Rückverweis:
Ein Rückverweis auf den letzten Teilstring, der mit der benannten Erfassungsgruppe übereinstimmt, die durch
Zum Beispiel,
Hinweis: |
Quantifizierer
Quantifizierer geben die Anzahl der Zeichen oder Ausdrücke an, die übereinstimmen sollen.
Hinweis: Im Folgenden bezieht sich item nicht nur auf einzelne Zeichen, sondern umfasst auch Zeichenklassen und Gruppen und Rückverweise.
| Zeichen | Bedeutung |
|---|---|
x*
|
Passt auf das vorangehende Element "x" 0 oder mehrmals. Zum Beispiel passt |
x+
|
Passt auf das vorangehende Element "x" 1 oder mehrmals. Entspricht |
x?
|
Passt auf das vorangehende Element "x" 0 oder 1 Mal. Zum Beispiel passt
Wenn es unmittelbar nach einem der Quantifizierer |
x{n}
|
Wo "n" eine nicht-negative ganze Zahl ist, passt genau "n" Vorkommen des vorangehenden Elements "x". Zum Beispiel passt |
x{n,}
|
Wo "n" eine nicht-negative ganze Zahl ist, passt auf mindestens "n" Vorkommen des vorangehenden Elements "x". Zum Beispiel passt |
x{n,m}
|
Wo "n" und "m" nicht-negative ganze Zahlen sind und |
|
|
Standardmäßig sind Quantifizierer wie
Hinweis: Das Hinzufügen von |