Kurzübersicht der regulären Ausdrücke
Diese Seite bietet eine umfassende Kurzübersicht über alle Möglichkeiten der RegExp-Syntax, indem die Inhalte der Artikel im RegExp-Leitfaden zusammengefasst werden. 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, beispielsweise die Unterscheidung zwischen Buchstaben und Ziffern.
| Zeichen | Bedeutung |
|---|---|
[xyz]
|
Zeichenklasse: Passt auf eines 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 literale Zeichen angesehen, das in die Zeichenklasse als normales Zeichen aufgenommen wird.
Zum Beispiel ist
Zum Beispiel,
Zum Beispiel, |
|
|
Negierte Zeichenklasse:
Passt auf alles, 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 Zeilenendzeichen:
|
\d |
Ziffernzeichenklassen-Escape:
Passt auf jede Ziffer (arabische Zahl). Entspricht |
\D |
Nicht-Ziffernzeichenklassen-Escape:
Passt auf jedes Zeichen, das keine Ziffer (arabische Zahl) ist. Entspricht
|
\w |
Wortzeichenklassen-Escape:
Passt auf jedes alphanumerische Zeichen des grundlegenden lateinischen Alphabets,
einschließlich des Unterstrichs. Entspricht |
\W |
Nicht-Wortzeichenklassen-Escape:
Passt auf jedes Zeichen, das kein Wortzeichen des grundlegenden
lateinischen Alphabets ist. Entspricht |
\s |
Whitespace-Zeichenklassen-Escape:
Passt auf ein einzelnes Leerzeichen, einschließlich Leerraum, Tabulator, Formularvorschub, Zeilenumbruch und andere Unicode-Leerzeichen. Entspricht
|
\S |
Nicht-Whitespace-Zeichenklassen-Escape:
Passt auf ein einzelnes Zeichen außer Leerzeichen. Entspricht
|
\t |
Passt auf einen horizontalen Tabulator. |
\r |
Passt auf einen Wagenrücklauf. |
\n |
Passt auf einen Zeilenumbruch. |
\v |
Passt auf einen vertikalen Tabulator. |
\f |
Passt auf einen Formularvorschub. |
[\b] |
Passt auf einen Rückschritt. Wenn Sie nach dem 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 mit Hilfe der
Caret-Notation, wobei "X" ein Buchstabe von A bis Z oder a bis z ist (entspricht den Codepunkten
|
\xhh
|
Hex-Escape:
Passt auf das Zeichen mit dem Code hh (zwei
hexadezimale Ziffern).
|
\uHHHH
|
Unicode-Escape:
Passt auf eine UTF-16 Code-Einheit mit dem Wert HHHH (vier hexadezimale Ziffern).
|
\u{H…H}
|
Unicode-Codepunkt-Escape:
Passt auf das Zeichen mit dem Unicode-Wert U+H…H (1 bis 6 hexadezimale Ziffern).
Nur gültig im unicode-bewussten Modus.
|
\p{UnicodeProperty},
\P{UnicodeProperty}
|
Unicode-Zeichenklassen-Escape: Passt auf ein Zeichen basierend auf seinen Unicode-Zeicheneigenschaften: zum Beispiel, Emoji-Zeichen oder japanische Katakana-Zeichen, oder chinesische/japanische Han/Kanji-Zeichen, usw.). Nur gültig im unicode-bewussten Modus. |
\ |
Zeigt an, dass das folgende Zeichen speziell behandelt werden soll, oder "escaped" wird. Es verhält sich auf zwei Arten.
Hinweis: Um dieses Zeichen wörtlich zu matchen, escapen Sie es
mit sich selbst. Mit anderen Worten, um nach |
x|y
|
Disjunktion:
Passt auf entweder "x" oder "y". Jedes Element, das von einer Pipe (
Hinweis: Eine Disjunktion ist eine andere Möglichkeit, "eine Auswahlmenge" zu spezifizieren, aber es ist 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 anzeigen, dass ein Match möglich ist (einschließlich Look-Ahead, Look-Behind und bedingten Ausdrücken).
Grenzen-basierte Assertions
| Zeichen | Bedeutung |
|---|---|
^ |
Eingabebeginn Assertion:
Passt auf den Beginn der Eingabe. Wenn das Hinweis: Dieses Zeichen hat eine andere Bedeutung, wenn es am Anfang einer Zeichenklasse erscheint. |
$ |
Eingabeende Assertion:
Passt auf das Ende der Eingabe. Wenn das |
\A |
Pufferbeginn Assertion: Passt auf den Beginn des gesamten Strings, unabhängig von der Anwesenheit des |
\z |
Pufferende Assertion: Passt auf das Ende des gesamten Strings, unabhängig von der Anwesenheit des |
\Z |
Pufferende Assertion mit optionalem Zeilenumbruch: Passt auf das Ende des gesamten Strings, erlaubt aber eine optionale abschließende Zeilenumbruchzeichenfolge (entweder ein Zeilenumbruch oder ein |
\b |
Wortgrenzen-Assertion: Passt auf eine Wortgrenze. Dies ist die Position, an der ein Wortzeichen nicht von einem anderen Wortzeichen gefolgt oder vorangegangen wird, wie zum Beispiel zwischen einem Buchstaben und einem Leerzeichen. Beachten Sie, dass eine gematchte Wortgrenze nicht Teil des Matches ist. Mit anderen Worten, die Länge einer gematchten Wortgrenze beträgt null. Beispiele:
Um auf ein Rückschritt-Zeichen ( |
\B |
Nicht-Wortgrenzen-Assertion:
Passt auf eine Nicht-Wortgrenze. Dies ist eine Position, an der das vorherige und
nächste Zeichen den gleichen Typ haben: 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.
Genauso wie die gematchte Wortgrenze wird auch die gematchte Nicht-Wortgrenze
nicht in das Match einbezogen. Zum Beispiel,
|
Andere Assertions
Hinweis:
Das ?-Zeichen kann auch als Quantifizierer verwendet werden.
| Zeichen | Bedeutung |
|---|---|
x(?=y) |
Lookahead-Assertion:
Passt auf "x" nur, wenn "x"
von "y" gefolgt wird. Zum Beispiel, |
x(?!y) |
Negative Lookahead-Assertion:
Passt auf "x" nur, wenn "x"
nicht von "y" gefolgt wird. Zum Beispiel, |
(?<=y)x |
Lookbehind-Assertion:
Passt auf "x" nur, wenn "x"
von "y" vorausgegangen wird. Zum Beispiel,
|
(?<!y)x |
Negative Lookbehind-Assertion:
Passt auf "x" nur, wenn
"x" nicht von "y" vorausgegangen wird. Zum Beispiel,
|
Gruppen und Rückverweise
Gruppen und Rückverweise kennzeichnen Gruppen von Ausdruckszeichen.
| Zeichen | Bedeutung |
|---|---|
(x) |
Capturing-Gruppe:
Passt auf
Ein regulärer Ausdruck kann mehrere Capturing-Gruppen haben. In den Ergebnissen,
Matches zu Capturing-Gruppen befinden sich typischerweise in einem Array, dessen Mitglieder in
derselben Reihenfolge sind wie die linken Klammern in der Capturing-Gruppe. Dies ist
normalerweise genau die Reihenfolge der Capturing-Gruppen selbst. Dies
wird wichtig, wenn Capturing-Gruppen verschachtelt sind. Auf die Matches wird
durch den Index der Elemente des Ergebnisses ( Capturing-Gruppen haben einen Leistungsverlust. Wenn Sie die gematchte Zeichenfolge nicht wieder abrufen müssen, bevorzugen Sie nicht-capturing Klammern (siehe unten).
|
(?<Name>x) |
Benannte Capturing-Gruppe:
Passt auf "x" und speichert es in
der Gruppeigenschaft der zurückgegebenen Matches unter dem Namen, der durch
Zum Beispiel, um den US-Vorwahlbereich aus einer Telefonnummer zu extrahieren,
könnten wir |
(?:x) |
Nicht-Capturing-Gruppe:
Passt auf "x", merkt sich aber nicht
das Match. Die gematchte Zeichenfolge kann nicht aus den Elementen des resultierenden
Arrays ( |
(?flags:x), (?flags-flags:x) |
Modifikator:
Aktiviert oder deaktiviert die angegebenen Flags nur für das umschlossene Muster. Nur die |
\n
|
Rückverweis:
Wo "n" eine positive Ganzzahl ist. Passt auf die gleiche Zeichenfolge, die durch
die n-te Capturing-Gruppe im regulären Ausdruck gematcht wurde
(zählend die linken Klammern). Zum Beispiel,
|
\k<Name> |
Benannter Rückverweis:
Ein Rückverweis auf die zuletzt gematchte Zeichenfolge der
benannten Capturing-Gruppe, die durch
Zum Beispiel,
Hinweis: |
Quantifizierer
Quantifizierer geben an, wie viele Zeichen oder Ausdrücke gematcht werden sollen.
Hinweis: Im Folgenden bezieht sich Element nicht nur auf einzelne Zeichen, sondern umfasst auch Zeichenklassen und Gruppen und Rückverweise.
| Zeichen | Bedeutung |
|---|---|
x*
|
Passt auf das vorherige Element "x" 0 oder mehr Mal. Zum Beispiel,
|
x+
|
Passt auf das vorherige Element "x" 1 oder mehr Mal. Entspricht
|
x?
|
Passt auf das vorherige Element "x" 0 oder 1 Mal. Zum Beispiel,
Wenn es unmittelbar nach einem der Quantifizierer |
x{n}
|
Wo "n" eine nicht-negative Ganzzahl ist, passt exakt "n" Vorkommen des
vorherigen Elements "x". Zum Beispiel passt |
x{n,}
|
Wo "n" eine nicht-negative Ganzzahl ist, passt auf mindestens "n" Vorkommen des
vorherigen Elements "x". Zum Beispiel, |
x{n,m}
|
Wo "n" und "m" nicht-negative Ganzzahlen sind und |
|
|
Standardmäßig sind Quantifizierer wie
Hinweis: Das Hinzufügen von |