[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Guide/Regular_expressions/Character_classes [Back]  [Original]

Zeichenklassen - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

Zeichenklassen

Zeichenklassen unterscheiden Arten von Zeichen, wie zum Beispiel die Unterscheidung zwischen Buchstaben und Ziffern.

In diesem Artikel

Probieren Sie es aus

const chessStory = "He played the King in a8 and she moved her Queen in c2.";
const regexpCoordinates = /\w\d/g;
console.log(chessStory.match(regexpCoordinates));
// Expected output: Array [ 'a8', 'c2']

const moods = "happy , confused , sad ";
const regexpEmoticons = /[\u{1F600}-\u{1F64F}]/gu;
console.log(moods.match(regexpEmoticons));
// Expected output: Array ['', '', '']

Typen

Zeichen Bedeutung
[xyz]
[a-c]

Zeichenklasse: Entspricht einem der eingeschlossenen Zeichen. Sie knnen einen Zeichenbereich mit einem Bindestrich angeben, aber wenn der Bindestrich als erstes oder letztes Zeichen in den eckigen Klammern erscheint, wird er als wrtlicher Bindestrich angesehen, der in die Zeichenklasse aufgenommen werden soll, als normales Zeichen.

Zum Beispiel ist [abcd] das gleiche wie [a-d]. Beide finden das b in brisket und das c in chop.

Zum Beispiel finden [abcd-] und [-abcd] das b in brisket, das c in chop und das - (Bindestrich) in non-profit.

Ein weiteres Beispiel: [\w-] ist das gleiche wie [A-Za-z0-9_-]. Beide finden das b in brisket, das c in chop und das n in non-profit.

Wenn das unicodeSets (v) Flag aktiviert ist, hat die Zeichenklasse zustzliche Eigenschaften. Weitere Informationen finden Sie im Zeichenklassen-Referenz.

[^xyz]
[^a-c]

Negierte Zeichenklasse: Entspricht allem, was nicht in den eckigen Klammern eingeschlossen ist. Sie knnen einen Zeichenbereich mit einem Bindestrich angeben, aber wenn der Bindestrich als erstes Zeichen nach dem ^ oder als letztes Zeichen in den eckigen Klammern erscheint, wird er als wrtlicher Bindestrich angesehen, der in die Zeichenklasse als normales Zeichen aufgenommen werden soll. Zum Beispiel ist [^abc] das gleiche wie [^a-c]. Sie finden "o" in "bacon" und "h" in "chop".

Hinweis: Das ^ Zeichen kann auch den Anfang der Eingabe kennzeichnen.

.

Wildcard: Entspricht jedem einzelnen Zeichen auer Zeilenendzeichen: \n, \r, \u2028 oder \u2029. Zum Beispiel entspricht /.y/ my und ay, aber nicht yes, in yes make my day, da es kein Zeichen vor "y" in "yes" gibt. Wenn das dotAll (s) Flag aktiviert ist, werden auch Zeilenendzeichen einbezogen. Innerhalb einer Zeichenklasse verliert der Punkt seine spezielle Bedeutung und entspricht einem wrtlichen Punkt.

\d

Zifferzeichenklassen-Escape: Entspricht jeder Ziffer (arabische Zahl). quivalent zu [0-9]. Zum Beispiel entspricht /\d/ oder /[0-9]/ 2 in B2 ist die Suitennummer.

\D

Nicht-Ziffer-Zeichenklassen-Escape: Entspricht jedem Zeichen, das keine Ziffer ist (arabische Zahl). quivalent zu [^0-9]. Zum Beispiel entspricht /\D/ oder /[^0-9]/ B in B2 ist die Suitennummer.

\w

Wortzeichenklassen-Escape: Entspricht jedem alphanumerischen Zeichen aus dem lateinischen Alphabet, einschlielich des Unterstrichs. quivalent zu [A-Za-z0-9_]. Zum Beispiel entspricht /\w/ a in apple, 5 in $5.28, 3 in 3D und m in manuel.

\W

Nicht-Wortzeichenklassen-Escape: Entspricht jedem Zeichen, das kein Wortzeichen aus dem lateinischen Alphabet ist. quivalent zu [^A-Za-z0-9_]. Zum Beispiel, /\W/ oder /[^A-Za-z0-9_]/ entspricht % in 50% und in manuel.

\s

Leerzeichen-Zeichenklassen-Escape: Entspricht einem einzelnen Leerzeichenzeichen, einschlielich Leerzeichen, Tabulator, Formfeed, Zeilenumbruch und andere Unicode-Leerzeichen. quivalent zu [\f\n\r\t\v\u0020\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]. Zum Beispiel entspricht /\s\w*/ bar in foo bar.

\S

Nicht-Leerzeichen-Zeichenklassen-Escape: Entspricht einem einzelnen Zeichen, das kein Leerzeichen ist. quivalent zu [^\f\n\r\t\v\u0020\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]. Zum Beispiel entspricht /\S\w*/ foo in foo bar.

\t Entspricht einem horizontalen Tabulator.
\r Entspricht einem Wagenrcklauf.
\n Entspricht einem Zeilenumbruch.
\v Entspricht einem vertikalen Tabulator.
\f Entspricht einem Papier-Vormal.
[\b] Entspricht einem Rckschritt. Wenn Sie nach der Wortgrenzenbesttigung (\b) suchen, sehen Sie Besttigungen.
\0 Entspricht einem NUL-Zeichen. Folgen Sie nicht mit einer weiteren Ziffer darauf.
\cX

Entspricht einem Steuerzeichen unter Verwendung Caret-Notation, wobei X ein Buchstabe von AZ oder az ist (entsprechend den Codepunkten U+0001U+001A). Zum Beispiel, /\cM\cJ/ entspricht \r\n.

\xhh Hex-Escape: Entspricht dem Zeichen mit dem Code hh (zwei hexadezimale Ziffern).
\uHHHH Unicode-Escape: Entspricht einer UTF-16-Codeeinheit mit dem Wert HHHH (vier hexadezimale Ziffern).
\u{HH} Unicode-Codepunkt-Escape: (Nur wenn das u-Flag gesetzt ist.) Entspricht dem Zeichen mit dem Unicode-Wert U+HH (1 bis 6 hexadezimale Ziffern).
\p{UnicodeProperty}, \P{UnicodeProperty}

Unicode-Zeichenklassen-Escape: Entspricht einem Zeichen basierend auf seinen Unicode-Zeichen-Eigenschaften: zum Beispiel Emoji-Zeichen, oder japanische Katakana-Zeichen, oder chinesische/japanische Han/Kanji-Zeichen, usw.).

\

Deutet an, dass das folgende Zeichen speziell behandelt oder "escaped" werden soll. Es verhlt sich auf eine von zwei Arten.

  • Fr Zeichen, die normalerweise wrtlich behandelt werden, zeigt dies an, dass das nchste Zeichen speziell ist und nicht wrtlich interpretiert werden soll. Zum Beispiel entspricht /b/ dem Zeichen b. Wenn Sie einen Backslash vor b setzen, also mit /\b/, wird das Zeichen speziell, um eine Wortgrenze zu bedeuten.
  • Fr Zeichen, die normalerweise speziell behandelt werden, zeigt es an, dass das nchste Zeichen nicht speziell ist und wrtlich interpretiert werden soll. Zum Beispiel ist * ein spezielles Zeichen, das bedeutet, dass 0 oder mehr Vorkommen des vorhergehenden Zeichens passen sollen; zum Beispiel bedeutet /a*/, dass 0 oder mehr as bereinstimmen sollen. Um * wrtlich zu erfassen, setzen Sie einen Backslash davor; zum Beispiel, /a\*/ entspricht a*.

Hinweis: Um dieses Zeichen wrtlich zu erfassen, "escapen" Sie es mit sich selbst. Um nach \ zu suchen, verwenden Sie /\\/.

x|y

Disjunktion: Entspricht entweder x oder y. Jede Komponente, getrennt durch eine Pipe (|), wird als Alternative bezeichnet. Zum Beispiel, /green|red/ entspricht "green" in "green apple" und "red" in "red apple".

Hinweis: Eine Disjunktion ist eine andere Mglichkeit, "eine Menge von Auswahlmglichkeiten" zu spezifizieren, aber es ist keine Zeichenklasse. Disjunktionen sind keine Atome Sie mssen eine Gruppe verwenden, um sie zu einem greren Muster zu machen. [abc] ist funktional gleichwertig mit (?:a|b|c).

Beispiele

Nach einer Serie von Ziffern suchen

In diesem Beispiel suchen wir nach einer Sequenz von 4 Ziffern mit \d{4}. \b steht fr eine Wortgrenze (d.h. fangen Sie nicht in der Mitte einer Zahlenreihe an oder hren Sie dort auf zu passen).

js
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.

Nach einem Wort (aus dem lateinischen Alphabet) suchen, das mit A beginnt

In diesem Beispiel suchen wir ein Wort, das mit dem Buchstaben A beginnt. \b steht fr eine Wortgrenze (d.h. fangen Sie nicht in der Mitte eines Wortes an zu passen). [aA] steht fr den Buchstaben a oder A. \w+ steht fr jedes Zeichen aus dem lateinischen Alphabet, mehrere Male (+ ist ein Quantifizierer). Da wir bereits so lange bereinstimmen, bis keine weiteren Wortzeichen mehr vorhanden sind, ist keine abschlieende \b-Grenze erforderlich.

js
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.

Nach einem Wort suchen (aus Unicode-Zeichen)

Statt des lateinischen Alphabets knnen wir einen Bereich von Unicode-Zeichen verwenden, um ein Wort zu identifizieren (und so mit Texten in anderen Sprachen wie Russisch oder Arabisch umgehen knnen). Die Basic Multilingual Plane von Unicode enthlt die meisten der weltweit verwendeten Zeichen und wir knnen Zeichenklassen und -bereiche verwenden, um Wrter zu finden, die mit diesen Zeichen geschrieben sind.

js
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.

Vokale zhlen

In diesem Beispiel zhlen 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 nicht zu beachten und so sowohl Gro- als auch Kleinbuchstaben der Vokale zu finden.

js
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


Web Proxy Viewer  |  New URL  |  Original Page