Reguläre Ausdrücke

  • Adressname der Version: JavaScript/Guide/Regular_Expressions
  • Titel der Version: Reguläre Ausdrücke
  • ID der Version: 310569
  • Erstellt:
  • Autor: eminor
  • Aktuelle Version? Nein
  • Kommentar

Inhalt der Version

Reguläre Ausdrücke sind Muster, die eingesetzt werden, um Text auf bestimmte Zeichenkombinationen zu überprüfen. Auch reguläre Ausdrücke sind Objekte bei JavaScript. Die Muster werden mit den Methoden exec und test von RegExp und den Methoden match, replace, search und split von String verwendet. Dieses Kapitel beschreibt reguläre Ausdrücke in JavaScript.

Erstellen von regulären Ausdrücken

Ein regulärer Ausdruck kann auf zwei verschiedene Arten erstellt werden.

Zum einen kann ein Literal verwendet werden:

var re = /ab+c/;

Hierbei findet die Komplilierung des regulären Ausdrucks während der Auswertung des Scripts statt. Wenn der reguläre Ausdruck konstant bleibt, sich also nicht ändert, ist diese Vorgehensweise aufgrund der schnelleren Ausführungsgeschwindigkeit empfehlenswert.

Zum anderen kann wie folgt die Konstruktorfunktion des Objekts RegExp zum Einsatz kommen:

var re = new RegExp("ab+c");

Bei der Benutzung der Konstruktorfunktion wird der reguläre Ausdruck während der Laufzeit kompiliert. Sie sollte verwendet werden, wenn man weiß, dass sich das Muster während der Laufzeit ändert oder man das Muster noch nicht kennt und von einer anderen Quelle, wie z.B. der Benutzereingabe, bezieht.

Schreiben von Mustern für reguläre Ausdrücke

Ein Muster eines regulären Ausdrucks wird aus einfachen Zeichen, wie z.B. /abc/ oder einer Kombination von einfachen und speziellen Zeichen, wie z.B. /ab*c/ oder /Kapitel (\d+)\.\d*/ erstellt. Das letzte Beispiel enthält Klammern, die zur Speicherung verwendet werden. Die Übereinstimmung im Text, welche auf das eingeklammerte Muster passt, wird hierbei für die spätere Verwendung gespeichert, wie unter Benutzung von geklammerten Mustern beschrieben.

Verwendung von einfachen Mustern

Einfache Muster werden aus Zeichen konstruiert, für die man eine direkte Übereinstimmung finden möchte. Zum Beispiel passt das Muster /abc/ nur dann für eine Zeichenkette, wenn exakt die Zeichen 'abc' aufeinander folgend in dieser Reihenfolge vorkommen. Solch eine Übereinstimmung kommt z.B. in der Zeichenkette "Hallo, kennst du das abc?" und "Das müssen wir noch abchecken." vor. In beiden Fällen enthält die Zeichenkette die Zeichenfolge "abc". In der Zeichenkette "Stab" gibt es keine Übereinstimmung, weil die Zeichenfolge "abc" darin nich vorkommt.

Verwendung von speziellen Zeichen

Wenn bei der Suche nicht nur nach einer direkten Übereinstimmung, sondern z.B. nach einem oder mehreren aufeinander folgenden Vorkommen des Buchstabens "b" oder nach Leerräumen (egal ob Tab oder Leerzeichen) gesucht wird, kommen spezielle Zeichen zum Einsatz. Zum Beispiel stimmt das Muster /ab*c/ mit allen Zeichenkombinationen überein, die ein "a", dann sofort darauf folgend ein oder mehrere "b" (Der Stern bedeutet 0 oder mehrere Vorkommen des vorherigen Zeichens) und anschließend sofort ein "c" enthalten. Demnach wird in der Zeichnfolge "cbbabbbbcdebc," eine Übereinstimmung gefunden, weil das Muster auf die Zeichenfolge "abbbbc" passt.

Die folgende Tabelle zeigt eine komplette Liste der speziellen Zeichen, die in regulären Ausdrücken verwendet werden, mit einer Beschreibung zu deren Bedeutung.

Tabelle 4.1 Spezielle Zeichen in regulären Ausdrücken
Character Meaning
\ Eine der folgenden Bedeutungen:
  • Für Zeichen, die normalerweise wörtlich, also so wie sie sind, interpretiert werden, wird mit dem Schrägstrich durch Voranstellung dafür gesorgt, dass das Zeichen als speziell und nicht als normales Zeichen interpretiert wird.
  • Zum Beispiel stimmt /b/ mit dem Zeichen "b" überein. Stellt man dem "b" einen Rückstrich voran, also /\b/, wird das Zeichen als spezielles Zeichen gedeutet, in diesem Fall als Wortgrenze gedeutet.
  • #####################
  • For characters that are usually treated specially, indicates that the next character is not special and should be interpreted literally.
  • For example, * is a special character that means 0 or more occurrences of the preceding item should be matched; for example, /a*/ means match 0 or more a's. To match * literally, precede it with a backslash; for example, /a\*/ matches 'a*'.
  • Also do not forget to escape \ itself while using the new RegExp("pattern") notation since \ is also an escape character in strings.
^

Matches beginning of input. If the multiline flag is set to true, also matches immediately after a line break character.

For example, /^A/ does not match the 'A' in "an A", but does match the 'A' in "An E".


This character has a different meaning when it appears as the first character in a character set pattern.

For example, /[^a-z\s]/ matches the '3' in "I have 3 sisters".

$

Matches end of input. If the multiline flag is set to true, also matches immediately before a line break character.

For example, /t$/ does not match the 't' in "eater", but does match it in "eat".

*

Matches the preceding character 0 or more times.

For example, /bo*/ matches 'boooo' in "A ghost booooed" and 'b' in "A bird warbled", but nothing in "A goat grunted".

+

Matches the preceding character 1 or more times. Equivalent to {1,}.

For example, /a+/ matches the 'a' in "candy" and all the a's in "caaaaaaandy".

?

Matches the preceding character 0 or 1 time. Equivalent to {0,1}.

For example, /e?le?/ matches the 'el' in "angel" and the 'le' in "angle" and also the 'l' in "oslo".

If used immediately after any of the quantifiers *, +, ?, or {}, makes the quantifier non-greedy (matching the minimum number of times), as opposed to the default, which is greedy (matching the maximum number of times). For example, using /\d+/ non-global match "123abc" return "123", if using /\d+?/, only "1" will be matched.

Also used in lookahead assertions, described under x(?=y) and x(?!y) in this table.

.

(The decimal point) matches any single character except the newline character.

For example, /.n/ matches 'an' and 'on' in "nay, an apple is on the tree", but not 'nay'.

(x)

Matches 'x' and remembers the match. These are called capturing parentheses.

For example, /(foo)/ matches and remembers 'foo' in "foo bar." The matched substring can be recalled from the resulting array's elements [1], ..., [n].

(?:x) Matches 'x' but does not remember the match. These are called non-capturing parentheses. The matched substring can not be recalled from the resulting array's elements [1], ..., [n].
x(?=y)

Matches 'x' only if 'x' is followed by 'y'. This is called a lookahead.

For example, /Jack(?=Sprat)/ matches 'Jack' only if it is followed by 'Sprat'. /Jack(?=Sprat|Frost)/ matches 'Jack' only if it is followed by 'Sprat' or 'Frost'. However, neither 'Sprat' nor 'Frost' is part of the match results.

x(?!y)

Matches 'x' only if 'x' is not followed by 'y'. This is called a negated lookahead.

For example, /\d+(?!\.)/ matches a number only if it is not followed by a decimal point. The regular expression /\d+(?!\.)/.exec("3.141") matches '141' but not '3.141'.

x|y

Matches either 'x' or 'y'.

For example, /green|red/ matches 'green' in "green apple" and 'red' in "red apple."

{n}

Where n is a positive integer. Matches exactly n occurrences of the preceding character.

For example, /a{2}/ doesn't match the 'a' in "candy," but it matches all of the a's in "caandy," and the first two a's in "caaandy."

{n,m}

Where n and m are positive integers. Matches at least n and at most m occurrences of the preceding character. When either n or m is zero, it can be omitted.

For example, /a{1,3}/ matches nothing in "cndy", the 'a' in "candy," the first two a's in "caandy," and the first three a's in "caaaaaaandy" Notice that when matching "caaaaaaandy", the match is "aaa", even though the original string had more a's in it.

[xyz]

A character set. Matches any one of the enclosed characters. You can specify a range of characters by using a hyphen. Special characters (such as the dot (.) and the asterisk (*)) do not have any special meaning inside a character set. They need not be escaped. Escape sequences also work.

For example, [abcd] is the same as [a-d]. They match the 'b' in "brisket" and the 'c' in "city". /[a-z.]+/ and /[\w.]+/ both match everything in "test.i.ng".

[^xyz]

A negated or complemented character set. That is, it matches anything that is not enclosed in the brackets. You can specify a range of characters by using a hyphen. Everything that works in the normal character set also works here.

For example, [^abc] is the same as [^a-c]. They initially match 'r' in "brisket" and 'h' in "chop."

[\b] Matches a backspace (U+0008). (Not to be confused with \ b.)
\b

Matches a word boundary. A word boundary matches the position where a word character is not followed or preceeded by another word-character. Note that a matched word boundary is not included in the match. In other words, the length of a matched word boundary is zero. (Not to be confused with [\b].)

Examples:
/\bmoo/ matches the 'm' in "moon" ;
/oo\b/ does not match the 'oo' in "moon", because 'oo' is followed by 'n' which is a word character;
/oon\b/ matches the 'oon' in "moon", because 'oon' is the end of the string, thus not followed by a word character;
/\w\b\w/ will never match anything, because a word character can never be followed by both a non-word and a word character.

\B

Matches a non-word boundary. This matches a position where the previous and next character are of the same type: Either both must be words, or both must be non-words. The beginning and end of a string are considered non-words.

For example, /\B../ matches 'oo' in "noonday" (, and /y\B./ matches 'ye' in "possibly yesterday."

\cX

Where X is a character ranging from A to Z. Matches a control character in a string.

For example, /\cM/ matches control-M (U+000D) in a string.

\d

Matches a digit character. Equivalent to [0-9].

For example, /\d/ or /[0-9]/ matches '2' in "B2 is the suite number."

\D

Matches any non-digit character. Equivalent to [^0-9].

For example, /\D/ or /[^0-9]/ matches 'B' in "B2 is the suite number."

\f Matches a form feed (U+000C).
\n Matches a line feed (U+000A).
\r Matches a carriage return (U+000D).
\s

Matches a single white space character, including space, tab, form feed, line feed. Equivalent to [ \f\n\r\t\v​\u00A0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​ \u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u2028\u2029​ \u202f\u205f​\u3000].

For example, /\s\w*/ matches ' bar' in "foo bar."

\S

Matches a single character other than white space. Equivalent to [^ \f\n\r\t\v​\u00A0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​ \u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u2028\u2029​ \u202f\u205f​\u3000].

For example, /\S\w*/ matches 'foo' in "foo bar."

\t Matches a tab (U+0009).
\v Matches a vertical tab (U+000B).
\w

Matches any alphanumeric character including the underscore. Equivalent to [A-Za-z0-9_].

For example, /\w/ matches 'a' in "apple," '5' in "$5.28," and '3' in "3D."

\W

Matches any non-word character. Equivalent to [^A-Za-z0-9_].

For example, /\W/ or /[^A-Za-z0-9_]/ matches '%' in "50%."

\n

Where n is a positive integer. A back reference to the last substring matching the n parenthetical in the regular expression (counting left parentheses).

For example, /apple(,)\sorange\1/ matches 'apple, orange,' in "apple, orange, cherry, peach."

\0 Matches a NULL (U+0000) character. Do not follow this with another digit, because \0<digits> is an octal escape sequence.
\xhh Matches the character with the code hh (two hexadecimal digits)
\uhhhh Matches the character with the code hhhh (four hexadecimal digits).

 

Quelltext der Version

<p>Reguläre Ausdrücke sind Muster, die eingesetzt werden, um Text auf bestimmte Zeichenkombinationen zu überprüfen. Auch reguläre Ausdrücke sind Objekte bei JavaScript. Die Muster werden mit den Methoden <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/exec" title="exec"><code>exec</code></a> und <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/test" title="test"><code>test</code></a> von <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp" title="RegExp"><code>RegExp</code></a> und den Methoden <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/match" title="match"><code>match</code></a>, <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace" title="en-US/docs/JavaScript/Reference/Global_Objects/String/replace"><code>replace</code></a>,<a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/search" title="search"> <code>search</code></a> und <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/split" title="split"><code>split</code></a> von <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String" title="String"><code>String</code></a> verwendet. Dieses Kapitel beschreibt reguläre Ausdrücke in JavaScript.</p>
<h2 id="Erstellen_von_regul.C3.A4ren_Ausdr.C3.BCcken">Erstellen von regulären Ausdrücken</h2>
<p>Ein regulärer Ausdruck kann auf zwei verschiedene Arten erstellt werden.</p>
<p>Zum einen kann ein Literal verwendet werden:</p>
<pre class="brush:js;">
var re = /ab+c/;</pre>
<p>Hierbei findet die Komplilierung des regulären Ausdrucks während der Auswertung des Scripts statt. Wenn der reguläre Ausdruck konstant bleibt, sich also nicht ändert, ist diese Vorgehensweise aufgrund der schnelleren Ausführungsgeschwindigkeit empfehlenswert.</p>
<p>Zum anderen kann wie folgt die Konstruktorfunktion des Objekts <code><a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp" title="en-US/docs/JavaScript/Reference/Global Objects/RegExp">RegExp</a></code> zum Einsatz kommen:</p>
<pre class="brush:js;">
var re = new RegExp("ab+c");</pre>
<p>Bei der Benutzung der Konstruktorfunktion wird der reguläre Ausdruck während der Laufzeit kompiliert. Sie sollte verwendet werden, wenn man weiß, dass sich das Muster während der Laufzeit ändert oder man das Muster noch nicht kennt und von einer anderen Quelle, wie z.B. der Benutzereingabe, bezieht.</p>
<h2 id="Schreiben_von_Mustern_f.C3.BCr_regul.C3.A4re_Ausdr.C3.BCcke">Schreiben von Mustern für reguläre Ausdrücke</h2>
<p>Ein Muster eines regulären Ausdrucks wird aus einfachen Zeichen, wie z.B. /abc/ oder einer Kombination von einfachen und speziellen Zeichen, wie z.B. /ab*c/ oder /Kapitel (\d+)\.\d*/ erstellt. Das letzte Beispiel enthält Klammern, die zur Speicherung verwendet werden. Die Übereinstimmung im Text, welche auf das eingeklammerte Muster passt, wird hierbei für die spätere Verwendung gespeichert, wie unter <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions#Using_Parenthesized_Substring_Matches">Benutzung von geklammerten Mustern</a> beschrieben.</p>
<h3 id="Verwendung_von_einfachen_Mustern">Verwendung von einfachen Mustern</h3>
<p>Einfache Muster werden aus Zeichen konstruiert, für die man eine direkte Übereinstimmung finden möchte. Zum Beispiel passt das Muster /abc/ nur dann für eine Zeichenkette, wenn exakt die Zeichen 'abc' aufeinander folgend in dieser Reihenfolge vorkommen. Solch eine Übereinstimmung kommt z.B. in der Zeichenkette "Hallo, kennst du das abc?" und "Das müssen wir noch abchecken." vor. In beiden Fällen enthält die Zeichenkette die Zeichenfolge "abc". In der Zeichenkette "Stab" gibt es keine Übereinstimmung, weil die Zeichenfolge "abc" darin nich vorkommt.</p>
<h3 id="Verwendung_von_speziellen_Zeichen">Verwendung von speziellen Zeichen</h3>
<p>Wenn bei der Suche nicht nur nach einer direkten Übereinstimmung, sondern z.B. nach einem oder mehreren aufeinander folgenden Vorkommen des Buchstabens "b" oder nach Leerräumen (egal ob Tab oder Leerzeichen) gesucht wird, kommen spezielle Zeichen zum Einsatz. Zum Beispiel stimmt das Muster /ab*c/ mit allen Zeichenkombinationen überein, die ein "a", dann sofort darauf folgend ein oder mehrere "b" (Der Stern bedeutet 0 oder mehrere Vorkommen des vorherigen Zeichens) und anschließend sofort ein "c" enthalten. Demnach wird in der Zeichnfolge "cbbabbbbcdebc," eine Übereinstimmung gefunden, weil das Muster auf die Zeichenfolge "abbbbc" passt.</p>
<p>Die folgende Tabelle zeigt eine komplette Liste der speziellen Zeichen, die in regulären Ausdrücken verwendet werden, mit einer Beschreibung zu deren Bedeutung.</p>
<table class="fullwidth-table">
  <caption style="text-align: left">
    Tabelle 4.1 Spezielle Zeichen in regulären Ausdrücken</caption>
  <thead>
    <tr>
      <th scope="col">Character</th>
      <th scope="col">Meaning</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-backslash" id="special-backslash" name="special-backslash"><code>\</code></a></td>
      <td>Eine der folgenden Bedeutungen:<br />
        <ul>
          <li>Für Zeichen, die normalerweise wörtlich, also so wie sie sind, interpretiert werden, wird mit dem Schrägstrich durch Voranstellung dafür gesorgt, dass das Zeichen als speziell und nicht als normales Zeichen interpretiert wird.</li>
          <li style="list-style-type: none;">Zum Beispiel stimmt <code>/b/</code> mit dem Zeichen "b" überein. Stellt man dem "b" einen Rückstrich voran, also <code>/\b/</code>, wird das Zeichen als spezielles Zeichen gedeutet, in diesem Fall als Wortgrenze gedeutet.</li>
          <li style="list-style-type: none;"><span style="color:#ff0000;">#####################</span></li>
          <li>For characters that are usually treated specially, indicates that the next character is not special and should be interpreted literally.</li>
          <li style="list-style-type: none;">For example, <code>*</code> is a special character that means 0 or more occurrences of the preceding item should be matched; for example, <code>/a*/</code> means match 0 or more a's. To match <code>*</code> literally, precede it with a backslash; for example, <code>/a\*/</code> matches 'a*'.</li>
          <li style="list-style-type: none;">Also do not forget to escape \ itself while using the new RegExp("pattern") notation since \ is also an escape character in strings.</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-caret" id="special-caret" name="special-caret"><code>^</code></a></td>
      <td>
        <p>Matches beginning of input. If the multiline flag is set to true, also matches immediately after a line break character.</p>
        <p>For example, <code>/^A/</code> does not match the 'A' in "an A", but does match the 'A' in "An E".</p>
        <p><br />
          This character has a different meaning when it appears as the first character in a character set pattern.</p>
        <p>For example, <code>/[^a-z\s]/</code> matches the '3' in "I have 3 sisters".</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-dollar" id="special-dollar" name="special-dollar"><code>$</code></a></td>
      <td>
        <p>Matches end of input. If the multiline flag is set to true, also matches immediately before a line break character.</p>
        <p>For example, <code>/t$/</code> does not match the 't' in "eater", but does match it in "eat".</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-asterisk" id="special-asterisk" name="special-asterisk"><code>*</code></a></td>
      <td>
        <p>Matches the preceding character 0 or more times.</p>
        <p>For example, <code>/bo*/</code> matches 'boooo' in "A ghost booooed" and 'b' in "A bird warbled", but nothing in "A goat grunted".</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-plus" id="special-plus" name="special-plus"><code>+</code></a></td>
      <td>
        <p>Matches the preceding character 1 or more times. Equivalent to {1,}.</p>
        <p>For example, <code>/a+/</code> matches the 'a' in "candy" and all the a's in "caaaaaaandy".</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-questionmark" id="special-questionmark" name="special-questionmark"><code>?</code></a></td>
      <td>
        <p>Matches the preceding character 0 or 1 time. Equivalent to {0,1}.</p>
        <p>For example, <code>/e?le?/</code> matches the 'el' in "angel" and the 'le' in "angle" and also the 'l' in "oslo".</p>
        <p>If used immediately after any of the quantifiers <code>*</code>, <code>+</code>, <code>?</code>, or <code>{}</code>, makes the quantifier non-greedy (matching the minimum number of times), as opposed to the default, which is greedy (matching the maximum number of times). For example, using /\d+/ non-global match "123abc" return "123", if using /\d+?/, only "1" will be matched.</p>
        <p>Also used in lookahead assertions, described under x(?=y) and x(?!y) in this table.</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-dot" id="special-dot" name="special-dot"><code>.</code></a></td>
      <td>
        <p>(The decimal point) matches any single character except the newline character.</p>
        <p>For example, <code>/.n/</code> matches 'an' and 'on' in "nay, an apple is on the tree", but not 'nay'.</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-capturing-parentheses" id="special-capturing-parentheses" name="special-capturing-parentheses"><code>(x)</code></a></td>
      <td>
        <p>Matches 'x' and remembers the match. These are called capturing parentheses.</p>
        <p>For example, <code>/(foo)/</code> matches and remembers 'foo' in "foo bar." The matched substring can be recalled from the resulting array's elements <code>[1]</code>, ..., <code>[n]</code>.</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-non-capturing-parentheses" id="special-non-capturing-parentheses" name="special-non-capturing-parentheses"><code>(?:x)</code></a></td>
      <td>Matches 'x' but does not remember the match. These are called non-capturing parentheses. The matched substring can not be recalled from the resulting array's elements <code>[1]</code>, ..., <code>[n]</code>.</td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-lookahead" id="special-lookahead" name="special-lookahead"><code>x(?=y)</code></a></td>
      <td>
        <p>Matches 'x' only if 'x' is followed by 'y'. This is called a lookahead.</p>
        <p>For example, <code>/Jack(?=Sprat)/</code> matches 'Jack' only if it is followed by 'Sprat'. <code>/Jack(?=Sprat|Frost)/</code> matches 'Jack' only if it is followed by 'Sprat' or 'Frost'. However, neither 'Sprat' nor 'Frost' is part of the match results.</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-negated-look-ahead" id="special-negated-look-ahead" name="special-negated-look-ahead"><code>x(?!y)</code></a></td>
      <td>
        <p>Matches 'x' only if 'x' is not followed by 'y'. This is called a negated lookahead.</p>
        <p>For example, <code>/\d+(?!\.)/</code> matches a number only if it is not followed by a decimal point. The regular expression <code>/\d+(?!\.)/.exec("3.141")</code> matches '141' but not '3.141'.</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-or" id="special-or" name="special-or"><code>x|y</code></a></td>
      <td>
        <p>Matches either 'x' or 'y'.</p>
        <p>For example, <code>/green|red/</code> matches 'green' in "green apple" and 'red' in "red apple."</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-quantifier" id="special-quantifier" name="special-quantifier"><code>{n}</code></a></td>
      <td>
        <p>Where <code>n</code> is a positive integer. Matches exactly <code>n</code> occurrences of the preceding character.</p>
        <p>For example, <code>/a{2}/</code> doesn't match the 'a' in "candy," but it matches all of the a's in "caandy," and the first two a's in "caaandy."</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-quantifier-range" id="special-quantifier-range" name="special-quantifier-range"><code>{n,m}</code></a></td>
      <td>
        <p>Where <code>n</code> and <code>m</code> are positive integers. Matches at least <code>n</code> and at most <code>m</code> occurrences of the preceding character. When either <code>n</code> or <code>m</code> is zero, it can be omitted.</p>
        <p>For example, <code>/a{1,3}/</code> matches nothing in "cndy", the 'a' in "candy," the first two a's in "caandy," and the first three a's in "caaaaaaandy" Notice that when matching "caaaaaaandy", the match is "aaa", even though the original string had more a's in it.</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-character-set" id="special-character-set" name="special-character-set"><code>[xyz]</code></a></td>
      <td>
        <p>A character set. Matches any one of the enclosed characters. You can specify a range of characters by using a hyphen. Special characters (such as the dot (<code>.</code>) and the asterisk (<code>*</code>)) do not have any special meaning inside a character set. They need not be escaped. Escape sequences also work.</p>
        <p>For example, <code>[abcd]</code> is the same as <span style="font-family: monospace;">[</span><code>a-d]</code>. They match the 'b' in "brisket" and the 'c' in "city". <code>/[a-z.]+/</code> and <code>/[\w.]+/</code> both match everything in "test.i.ng".</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-negated-character-set" id="special-negated-character-set" name="special-negated-character-set"><code>[^xyz]</code></a></td>
      <td>
        <p>A negated or complemented character set. That is, it matches anything that is not enclosed in the brackets. You can specify a range of characters by using a hyphen. Everything that works in the normal character set also works here.</p>
        <p>For example, <code>[^abc]</code> is the same as <code>[^a-c]</code>. They initially match 'r' in "brisket" and 'h' in "chop."</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-backspace" id="special-backspace" name="special-backspace"><code>[\b]</code></a></td>
      <td>Matches a backspace (U+0008). (Not to be confused with <code>\ b</code>.)</td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-word-boundary" id="special-word-boundary" name="special-word-boundary"><code>\b</code></a></td>
      <td>
        <p>Matches a word boundary. A word boundary matches the position where a word character is not followed or preceeded by another word-character. Note that a matched word boundary is not included in the match. In other words, the length of a matched word boundary is zero. (Not to be confused with <code>[\b]</code>.)</p>
        <p>Examples:<br />
          <code>/\bmoo/</code> matches the 'm' in "moon" ;<br />
          <code>/oo\b/</code> does not match the 'oo' in "moon", because 'oo' is followed by 'n' which is a word character;<br />
          <code>/oon\b/</code> matches the 'oon' in "moon", because 'oon' is the end of the string, thus not followed by a word character;<br />
          <code>/\w\b\w/</code> will never match anything, because a word character can never be followed by both a non-word and a word character.</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-non-word-boundary" id="special-non-word-boundary" name="special-non-word-boundary"><code>\B</code></a></td>
      <td>
        <p>Matches a non-word boundary. This matches a position where the previous and next character are of the same type: Either both must be words, or both must be non-words. The beginning and end of a string are considered non-words.</p>
        <p>For example, <code>/\B../</code> matches 'oo' in "noonday" (, and <code>/y\B./</code> matches 'ye' in "possibly yesterday."</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-control" id="special-control" name="special-control"><code>\c<em>X</em></code></a></td>
      <td>
        <p>Where <em>X</em> is a character ranging from A to Z. Matches a control character in a string.</p>
        <p>For example, <code>/\cM/</code> matches control-M (U+000D) in a string.</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-digit" id="special-digit" name="special-digit"><code>\d</code></a></td>
      <td>
        <p>Matches a digit character. Equivalent to <code>[0-9]</code>.</p>
        <p>For example, <code>/\d/</code> or <code>/[0-9]/</code> matches '2' in "B2 is the suite number."</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-non-digit" id="special-non-digit" name="special-non-digit"><code>\D</code></a></td>
      <td>
        <p>Matches any non-digit character. Equivalent to <code>[^0-9]</code>.</p>
        <p>For example, <code>/\D/</code> or <code>/[^0-9]/</code> matches 'B' in "B2 is the suite number."</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-form-feed" id="special-form-feed" name="special-form-feed"><code>\f</code></a></td>
      <td>Matches a form feed (U+000C).</td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-line-feed" id="special-line-feed" name="special-line-feed"><code>\n</code></a></td>
      <td>Matches a line feed (U+000A).</td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-carriage-return" id="special-carriage-return" name="special-carriage-return"><code>\r</code></a></td>
      <td>Matches a carriage return (U+000D).</td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-white-space" id="special-white-space" name="special-white-space"><code>\s</code></a></td>
      <td>
        <p>Matches a single white space character, including space, tab, form feed, line feed. Equivalent to <code>[ \f\n\r\t\v​\u00A0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​ \u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u2028\u2029​ \u202f\u205f​\u3000]</code>.</p>
        <p>For example, <code>/\s\w*/</code> matches ' bar' in "foo bar."</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-non-white-space" id="special-non-white-space" name="special-non-white-space"><code>\S</code></a></td>
      <td>
        <p>Matches a single character other than white space. Equivalent to <code>[^ \f\n\r\t\v​\u00A0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​ \u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u2028\u2029​ \u202f\u205f​\u3000]</code>.</p>
        <p>For example, <code>/\S\w*/</code> matches 'foo' in "foo bar."</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-tab" id="special-tab" name="special-tab"><code>\t</code></a></td>
      <td>Matches a tab (U+0009).</td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-vertical-tab" id="special-vertical-tab" name="special-vertical-tab"><code>\v</code></a></td>
      <td>Matches a vertical tab (U+000B).</td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-word" id="special-word" name="special-word"><code>\w</code></a></td>
      <td>
        <p>Matches any alphanumeric character including the underscore. Equivalent to <code>[A-Za-z0-9_]</code>.</p>
        <p>For example, <code>/\w/</code> matches 'a' in "apple," '5' in "$5.28," and '3' in "3D."</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-non-word" id="special-non-word" name="special-non-word"><code>\W</code></a></td>
      <td>
        <p>Matches any non-word character. Equivalent to <code>[^A-Za-z0-9_]</code>.</p>
        <p>For example, <code>/\W/</code> or <code>/[^A-Za-z0-9_]/</code> matches '%' in "50%."</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-backreference" id="special-backreference" name="special-backreference"><code>\<em>n</em></code></a></td>
      <td>
        <p>Where <em>n</em> is a positive integer. A back reference to the last substring matching the <em>n</em> parenthetical in the regular expression (counting left parentheses).</p>
        <p>For example, <code>/apple(,)\sorange\1/</code> matches 'apple, orange,' in "apple, orange, cherry, peach."</p>
      </td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-null" id="special-null" name="special-null"><code>\0</code></a></td>
      <td>Matches a NULL (U+0000) character. Do not follow this with another digit, because <code>\0&lt;digits&gt;</code> is an octal escape sequence.</td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-hex-escape" id="special-hex-escape" name="special-hex-escape"><code>\xhh</code></a></td>
      <td>Matches the character with the code hh (two hexadecimal digits)</td>
    </tr>
    <tr>
      <td><a href="https://developer.mozilla.org/de/docs/JavaScript/Guide/Regular_Expressions$edit#special-unicode-escape" id="special-unicode-escape" name="special-unicode-escape"><code>\uhhhh</code></a></td>
      <td>Matches the character with the code hhhh (four hexadecimal digits).</td>
    </tr>
  </tbody>
</table>
<p>&nbsp;</p>
Zu dieser Version zurücksetzen