| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Regular_expressions | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Ein regulrer Ausdruck (kurz regex) ermglicht es Entwicklern, Zeichenfolgen mit einem Muster abzugleichen, Informationen ber bereinstimmungen zu extrahieren oder einfach zu testen, ob die Zeichenfolge diesem Muster entspricht. Regulre Ausdrcke werden in vielen Programmiersprachen verwendet, und die Syntax von JavaScript ist von Perl inspiriert.
Es wird empfohlen, den Leitfaden zu regulren Ausdrcken zu lesen, um einen berblick ber die verfgbaren Regex-Syntaxen und deren Funktionsweise zu erhalten.
Regulre Ausdrcke sind ein wichtiges Konzept in der formalen Sprachtheorie. Sie sind eine Mglichkeit, eine mglicherweise unendliche Menge von Zeichenfolgen (eine Sprache genannt) zu beschreiben. Ein regulrer Ausdruck bentigt im Wesentlichen die folgenden Merkmale:
ab bedeutet "das Zeichen a gefolgt von dem Zeichen b".a|b bedeutet "entweder a oder b".a* bedeutet "null oder mehr a Zeichen".Angenommen, es gibt ein endliches Alphabet (wie die 26 Buchstaben des englischen Alphabets oder das gesamte Unicode-Zeichensatz), knnen alle regulren Sprachen durch die oben genannten Merkmale generiert werden. Natrlich sind viele Muster auf diese Weise sehr mhsam auszudrcken (wie "10 Ziffern" oder "ein Zeichen, das kein Leerzeichen ist"), daher umfassen JavaScript-Regulre Ausdrcke viele Abkrzungen, die im Folgenden eingefhrt werden.
Hinweis: JavaScript-Regulre Ausdrcke sind eigentlich nicht regulr, aufgrund der Existenz von Rckverweisen (regulre Ausdrcke mssen endliche Zustnde haben). Trotzdem sind sie ein sehr ntzliches Merkmal.
Ein regulrer Ausdruck wird typischerweise als Literal erstellt, indem ein Muster in Schrgstriche (/) eingeschlossen wird:
const regex1 = /ab+c/g;
Regulre Ausdrcke knnen auch mit dem RegExp()-Konstruktor erstellt werden:
const regex2 = new RegExp("ab+c", "g");
Es gibt keine Laufzeitunterschiede, obwohl sie Auswirkungen auf die Leistung, Analysierbarkeit zur Laufzeit und ergonomische Probleme beim Erstellen mit Escape-Zeichen haben knnen. Weitere Informationen finden Sie in der RegExp Referenz.
Flags sind spezielle Parameter, die die Art und Weise ndern knnen, wie ein regulrer Ausdruck interpretiert wird oder wie er mit dem Eingabetext interagiert. Jedes Flag entspricht einer Accessor-Eigenschaft des RegExp-Objekts.
| Flag | Beschreibung | Entsprechende Eigenschaft |
|---|---|---|
d |
Erzeugt Indizes fr Teilstring-bereinstimmungen. | hasIndices |
g |
Globale Suche. | global |
i |
Gro-/Kleinschreibung ignorieren. | ignoreCase |
m |
Lsst ^ und $ den Anfang und das Ende jeder Zeile statt der ganzen Zeichenfolge abgleichen. |
multiline |
s |
Erlaubt . das Abgleichen von Zeilenendzeichen. |
dotAll |
u |
"Unicode"; behandelt ein Muster als eine Folge von Unicode-Codepunkten. | unicode |
v |
Eine Aufrstung des u-Modus mit mehr Unicode-Funktionen. |
unicodeSets |
y |
Durchfhrung einer "Sticky"-Suche, die an der aktuellen Position in der Zielzeichenfolge beginnt. | sticky |
Die Flags i, m und s knnen mithilfe der Modifier-Syntax fr spezifische Teile eines Regex aktiviert oder deaktiviert werden.
Die folgenden Abschnitte listen alle verfgbaren Regex-Syntaxen auf, gruppiert nach ihrer syntaktischen Natur.
Assertions sind Konstrukte, die testen, ob die Zeichenfolge an der angegebenen Position eine bestimmte Bedingung erfllt, jedoch keine Zeichen aufnehmen. Assertions knnen nicht quantifiziert werden.
\A, \z, \ZBesttigt, dass sich die aktuelle Position in der Zeichenfolge genau am Anfang oder Ende der gesamten Zeichenfolge befindet (\Z erlaubt auch ein nachgestelltes Zeilenumbruch), unabhngig von der Anwesenheit des m-Flags.
^, $Besttigt, dass die aktuelle Position der Anfang oder das Ende der Eingabe ist, oder der Anfang oder das Ende einer Zeile, wenn das m-Flag gesetzt ist.
(?=...), (?!...)Besttigt, dass die aktuelle Position von einem bestimmten Muster gefolgt oder nicht gefolgt wird.
(?<=...), (?<!...)Besttigt, dass die aktuelle Position von einem bestimmten Muster vorangegangen oder nicht vorangegangen ist.
\b, \BBesttigt, dass die aktuelle Position eine Wortgrenze ist.
Atome sind die grundlegendsten Einheiten eines regulren Ausdrucks. Jedes Atom konsumiert ein oder mehrere Zeichen in der Zeichenfolge und fhrt entweder dazu, dass die bereinstimmung fehlschlgt oder das Muster mit dem nchsten Atom fortgesetzt wird.
\1, \2Stimmt mit einem zuvor bereingestimmten Teilmuster berein, das mit einer erfassenden Gruppe erfasst wurde.
(...)Stimmt mit einem Teilmuster berein und merkt sich Informationen ber die bereinstimmung.
[...], [^...]Stimmt mit einem Zeichen in einem Satz von Zeichen oder einem Zeichen, das nicht in einem Satz von Zeichen ist. Wenn das v-Flag aktiviert ist, kann es auch verwendet werden, um Zeichenfolgen endlicher Lnge abzugleichen.
\d, \D, \w, \W, \s, \SStimmt mit einem Zeichen in einem vordefinierten Satz von Zeichen oder einem Charakter, der nicht in diesem Satz von Zeichen ist, berein.
\n, \u{...}Stimmt mit einem Zeichen berein, das mglicherweise nicht in seiner literalen Form bequem dargestellt werden kann.
a, bStimmt mit einem bestimmten Zeichen berein.
(?ims-ims:...)berschreibt die Flag-Einstellungen in einem bestimmten Teil eines regulren Ausdrucks.
\k<name>Stimmt mit einem zuvor bereingestimmten Teilmuster berein, das mit einer namentlich erfassten Gruppe erfasst wurde.
(?<name>...)Stimmt mit einem Teilmuster berein und merkt sich Informationen ber die bereinstimmung. Die Gruppe kann spter durch einen benutzerdefinierten Namen statt durch ihren Index im Muster identifiziert werden.
(?:...)Stimmt mit einem Teilmuster berein, ohne Informationen ber die bereinstimmung zu merken.
\p{...}, \P{...}Stimmt mit einem Satz von Zeichen berein, der durch eine Unicode-Eigenschaft angegeben wird. Wenn das v-Flag aktiviert ist, kann es auch verwendet werden, um Zeichenfolgen endlicher Lnge abzugleichen.
.Stimmt mit jedem Zeichen auer Zeilenendzeichen berein, es sei denn, das s-Flag ist gesetzt.
Diese Merkmale spezifizieren kein Muster selbst, werden jedoch verwendet, um Muster zu komponieren.
|Stimmt mit einem der Alternativen berein, die durch das |-Zeichen getrennt sind.
*, +, ?, {n}, {n,}, {n,m}Stimmt mit einem Atom eine bestimmte Anzahl von Malen berein.
Escape-Sequenzen in Regexen beziehen sich auf jede Art von Syntax, die durch \ gefolgt von einem oder mehreren Zeichen gebildet wird. Sie knnen sehr unterschiedliche Zwecke erfllen, je nachdem, was \ folgt. Nachfolgend finden Sie eine Liste aller gltigen "Escape-Sequenzen":
| Escape-Sequenz | Gefolgt von | Bedeutung |
|---|---|---|
\A |
Keine | Buffer Boundary Assertion |
\B |
Keine | Nicht-Wort-Grenzen-Assertion |
\D |
Keine | Zeichenklassenescape, das nicht-Ziffern-Zeichen reprsentiert |
\P |
{, eine Unicode-Eigenschaft und/oder Wert, dann } |
Unicode-Zeichenklassenescape, das Zeichen ohne die angegebene Unicode-Eigenschaft reprsentiert |
\S |
Keine | Zeichenklassenescape, das nicht-Leerzeichen-Zeichen reprsentiert |
\W |
Keine | Zeichenklassenescape, das nicht-Wort-Zeichen reprsentiert |
\Z |
Keine | Buffer Boundary Assertion |
\b |
Keine | Wort-Grenzen-Assertion; innerhalb Zeichenklassen reprsentiert es U+0008 (RCKSCHRITT) |
\c |
Ein Buchstabe von A bis Z oder a bis z |
Ein Zeichenescape, das das Steuerzeichen mit einem Wert gleich dem Zeichenwert des Buchstabens modulo 32 reprsentiert |
\d |
Keine | Zeichenklassenescape, das Ziffern-Zeichen (0 bis 9) reprsentiert |
\f |
Keine | Zeichenescape, das U+000C (SEITENUMBRUCH) reprsentiert |
\k |
<, ein Bezeichner, dann > |
Ein namentlicher Rckverweis |
\n |
Keine | Zeichenescape, das U+000A (ZEILENVORSCHUB) reprsentiert |
\p |
{, eine Unicode-Eigenschaft und/oder Wert, dann } |
Unicode-Zeichenklassenescape, das Zeichen mit der angegebenen Unicode-Eigenschaft reprsentiert |
\q |
{, eine Zeichenfolge, dann } |
Nur gltig innerhalb von v-Modus Zeichenklassen; reprsentiert die Zeichenfolge, die wrtlich abgeglichen werden soll |
\r |
Keine | Zeichenescape, das U+000D (WAGENRCKLAUF) reprsentiert |
\s |
Keine | Zeichenklassenescape, das Leerzeichen-Zeichen reprsentiert |
\t |
Keine | Zeichenescape, das U+0009 (ZEICHENTABULATOR) reprsentiert |
\u |
4 hexadezimale Ziffern; oder {, 1 bis 6 hexadezimale Ziffern, dann } |
Zeichenescape, das das Zeichen mit dem gegebenen Codepunkt reprsentiert |
\v |
Keine | Zeichenescape, das U+000B (ZEILENTABULATOR) reprsentiert |
\w |
Keine | Zeichenklassenescape, das Wortzeichen (A bis Z, a bis z, 0 bis 9, _) reprsentiert |
\x |
2 hexadezimale Ziffern | Zeichenescape, das das Zeichen mit dem gegebenen Wert reprsentiert |
\z |
Keine | Buffer Boundary Assertion |
\0 |
Keine | Zeichenescape, das U+0000 (NUL) reprsentiert |
\ gefolgt von 0 und einer weiteren Ziffer wird zu einer veralteten oktalen Escape-Sequenz, die im Unicode-bewussten Modus verboten ist. \ gefolgt von jeder anderen Ziffernfolge wird zu einem Rckverweis.
Darber hinaus kann \ von einigen Nicht-Buchstaben- oder Zifferzeichen gefolgt werden, wobei die Escape-Sequenz immer ein Zeichenescape ist, das das entkommene Zeichen selbst darstellt:
\$, \(, \), \*, \+, \., \/, \?, \[, \\, \], \^, \{, \|, \}: berall gltig\-: nur innerhalb von Zeichenklassen gltig\!, \#, \%, \&, \,, \:, \;, \<, \=, \>, \@, \`, \~: nur innerhalb von v-Modus Zeichenklassen gltigDie anderen ASCII Zeichen, nmlich Leerzeichen, ", ', _, und jeder nicht oben erwhnte Buchstabencharakter, sind keine gltigen Escape-Sequenzen. Im Unicode-unbewussten Modus werden Escape-Sequenzen, die nicht zu den oben genannten gehren, zu Identitts-Escapes: Sie reprsentieren das Zeichen, das dem Backslash folgt. Zum Beispiel reprsentiert \a das Zeichen a. Dieses Verhalten schrnkt die Mglichkeit ein, neue Escape-Sequenzen einzufhren, ohne Rckwrtskompatibilittsprobleme zu verursachen, und ist daher im Unicode-bewussten Modus verboten.
Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |