Zeichenklassen
Zeichenklassen unterscheiden Arten von Zeichen, zum Beispiel zur Unterscheidung zwischen Buchstaben und Ziffern.
Probieren Sie es aus
Typen
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 literaler Bindestrich betrachtet, der in die Zeichenklasse als normales Zeichen aufgenommen wird.
Zum Beispiel ist
Zum Beispiel passen
Zum Beispiel ist
Wenn das |
|
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 |
Ziffern-Zeichenklassen-Escape:
Passt auf jede Ziffer (arabische Ziffer). Entspricht |
\D |
Nicht-Ziffern-Zeichenklassen-Escape:
Passt auf jedes Zeichen, das keine Ziffer (arabische Ziffer) ist. Entspricht
|
\w |
Wort-Zeichenklassen-Escape:
Passt auf jedes alphanumerische Zeichen aus dem lateinischen Grundalphabet,
einschließlich des Unterstrichs. Entspricht |
\W |
Nicht-Wort-Zeichenklassen-Escape:
Passt auf jedes Zeichen, das kein Wortzeichen aus dem lateinischen
Grundalphabet ist. Entspricht |
\s |
Leerzeichen-Zeichenklassen-Escape:
Passt auf ein einzelnes Leerzeichen, einschließlich Leerzeichen, Tabulator, Seitenumbruch, Zeilenumbruch und anderer Unicode-Leerzeichen. Entspricht |
\S |
Nicht-Leerzeichen-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 Seitenvorschub. |
[\b] |
Passt auf einen Rückschritt. Wenn Sie nach der Wortgrenzen-Bestätigung
(\b ) suchen, siehe
Bestätigungen.
|
\0 |
Passt auf ein NUL-Zeichen. Folgen Sie dies nicht mit einer weiteren Ziffer. |
\cX
|
Passt auf ein Steuerzeichen unter Verwendung der
Caret-Notation, wobei "X" ein Buchstabe von A–Z ist (entsprechend den Codepunkten
|
\xhh
|
Passt auf das Zeichen mit dem Code hh (zwei
hexadezimale Ziffern).
|
\uhhhh
|
Passt auf eine UTF-16-Codierungseinheit 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-Zeicheneigenschaften: 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 soll. Es verhält sich auf zwei Arten.
Hinweis: Um dieses Zeichen buchstäblich zu suchen, escapen Sie es mit sich selbst. Mit anderen Worten, um nach |
x|y
|
Disjunktion:
Passt entweder auf "x" oder "y". Jedes Element, getrennt durch eine Pipe (
Hinweis: Eine Disjunktion ist eine weitere Möglichkeit, "eine Reihe von Optionen" anzugeben, aber es ist keine Zeichenklasse. Disjunktionen sind keine Atome — Sie müssen eine Gruppe verwenden, um sie Teil eines größeren Musters zu machen. |
Beispiele
Auf der Suche nach einer Reihe von Ziffern
In diesem Beispiel suchen wir eine Folge von 4 Ziffern mit \d{4}
. \b
zeigt eine Wortgrenze an (d.h. nicht in der Mitte einer Ziffernfolge beginnen oder enden).
const randomData = "015 354 8787 687351 3512 8735";
const regexpFourDigits = /\b\d{4}\b/g;
console.table(randomData.match(regexpFourDigits));
// ['8787', '3512', '8735']
Weitere Beispiele finden Sie in der Zeichenklassen-Escape Referenz.
Auf der Suche nach einem Wort (aus dem lateinischen Alphabet) beginnend mit A
In diesem Beispiel suchen wir ein Wort, das mit dem Buchstaben A beginnt. \b
zeigt eine Wortgrenze an (d.h. nicht in der Mitte eines Wortes beginnen). [aA]
zeigt den Buchstaben "a" oder "A" an. \w+
zeigt beliebige Zeichen aus dem lateinischen Alphabet mehrmals an (+
ist ein Quantifikator). Da wir bereits bis zum Ende der Wortzeichen übereinstimmen, ist eine abschließende \b
-Grenze nicht notwendig.
const aliceExcerpt =
"I'm sure I'm not Ada,' she said, 'for her hair goes in such long ringlets, and mine doesn't go in ringlets at all.";
const regexpWordStartingWithA = /\b[aA]\w+/g;
console.table(aliceExcerpt.match(regexpWordStartingWithA));
// ['Ada', 'and', 'at', 'all']
Weitere Beispiele finden Sie in der Zeichenklassen-Escape Referenz.
Auf der Suche nach einem Wort (aus Unicode Zeichen)
Anstelle des lateinischen Alphabets können wir einen Bereich von Unicode-Zeichen verwenden, um ein Wort zu identifizieren (somit in der Lage, mit Text in anderen Sprachen wie Russisch oder Arabisch umzugehen). Die "Basic Multilingual Plane" von Unicode enthält die meisten der weltweit benutzten Zeichen und wir können Zeichenklassen und Bereiche verwenden, um Wörter zu erkennen, die mit diesen Zeichen geschrieben sind.
const nonEnglishText = "Приключения Алисы в Стране чудес";
const regexpBMPWord = /([\u0000-\u0019\u0021-\uFFFF])+/gu;
// BMP goes through U+0000 to U+FFFF but space is U+0020
console.table(nonEnglishText.match(regexpBMPWord));
["Приключения", "Алисы", "в", "Стране", "чудес"];
Weitere Beispiele finden Sie in der Unicode-Zeichenklassen-Escape Referenz.
Zählen von Vokalen
In diesem Beispiel zählen wir die Anzahl der Vokale (A, E, I, O, U, Y) in einem Text. Das g
-Flag wird verwendet, um alle Vorkommen des Musters im Text zu finden. Das i
-Flag wird verwendet, um das Muster case-insensitive zu machen, so dass es sowohl Groß- als auch Kleinbuchstaben-Vokale erfasst.
const aliceExcerpt =
"There was a long silence after this, and Alice could only hear whispers now and then.";
const regexpVowels = /[aeiouy]/gi;
console.log("Number of vowels:", aliceExcerpt.match(regexpVowels).length);
// Number of vowels: 26
Siehe auch
- Reguläre Ausdrücke Leitfaden
- Bestätigungen Leitfaden
- Quantifikatoren Leitfaden
- Gruppen und Rückreferenzen Leitfaden
RegExp
- Reguläre Ausdrücke Referenz
- Zeichenklasse:
[...]
,[^...]
- Zeichenklassen-Escape:
\d
,\D
,\w
,\W
,\s
,\S
- Zeichen-Escape:
\n
,\u{...}
- Disjunktion:
|
- Unicode-Zeichenklassen-Escape:
\p{...}
,\P{...}
- Wildcard:
.