Reguläre Ausdrücke (Kurzreferenz)

Regulärere Ausdrücke (engl. regular expression, Abk. RegExp oder Regex) sind ein sind ein mächtiges Mittel, um Zeichenketten zu filtern (denkbaren Zeichenkombinationen zu finden, to match) und komplizierte Textersetzungen durchzuführen. Die folgende Tabelle enthält eine Liste der Metazeichen und ihres Verhaltens im Kontext regulärer Ausdrücke
Zeichen Beschreibung
\ Markiert das nächste Zeichen entweder als Sonderzeichen, als Literal, als Rückverweis oder als oktalen Escapewert. Beispielsweise entspricht 'n' dem Zeichen "n". '\n' entspricht einem Zeilenumbruchzeichen. Die Sequenz '\\' entspricht "\", und '\(' entspricht "(".
^ Entspricht der Position am Anfang der Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht ^ auch der Position nach "\n" oder "\r".
$ Entspricht der Position am Ende der Eingabezeichenfolge. Wenn die Multiline-Eigenschaft des RegExp-Objekts festgelegt ist, entspricht $ auch der Position vor "\n" oder "\r".
* Entspricht dem vorhergehenden Unterausdruck keinmal, einmal oder mehrere Male. Beispielsweise entspricht /aus*/ sowohl "au", "aus", "auss" und "aussssss". * ist äquivalent zu '{0,}'.
+ Entspricht dem vorhergehenden Unterausdruck einmal oder mehrere Male. /aus+/ findet "auss" und "aussssss". + ist äquivalent zu '{1,}'.
? Entspricht dem vorhergehenden Unterausdruck keinmal oder einmal. Beispielsweise entspricht 'habe(n)?' dem "habe" in "habe" oder "haben". ? ist äquivalent zu '{0,1}'.
{n} n ist eine nicht negative Ganzzahl. Entspricht exakt n Mal. Beispielsweise entspricht 'o{2}' nicht dem "o" in "Robert", jedoch den beiden "o" in "Boot".
{n,} n ist eine nicht negative Ganzzahl. Entspricht mindestens n Mal. Beispielsweise entspricht 'o{2,}' nicht dem "o" in "Robert", aber allen "o" in "Boooot". 'o{1,}' ist äquivalent zu 'o+'. 'o{0,}' ist äquivalent zu 'o*'.
{n,m} m und n sind nicht negative Ganzzahlen, wobei n <= m. Entspricht mindestens n und höchstens m Mal. Beispielsweise entspricht 'o{1,3}' den ersten drei "o" in "Booooot". 'o{0,1}' ist äquivalent zu 'o?'. Beachten Sie, dass zwischen dem Komma und den Zahlen kein Leerzeichen stehen darf.
? Wenn dieses Zeichen unmittelbar auf einen der anderen Quantifizierer folgt (*, +, ?, {n}, {n,}, {n,m}), so ist die Musterentsprechung nicht umfassend, also von kürzestmöglicher Übereinstimmung. Ein nicht umfassendes Muster entspricht möglichst wenig der durchsuchten Zeichenfolge, während das umfassende Standardmuster möglichst viel der durchsuchten Zeichenfolge entspricht. In der Zeichenfolge "oooo" entspricht beispielsweise 'o+?' einem einzigen "o", während 'o+' allen "o" entspricht.
. Entspricht allen einzelnen Zeichen außer "\n". /.aus/ findet "Haus", "Maus", "raus". /.+aus/ findet "Haus", "Kehraus", "xyz123aus". Um nach einer Entsprechung für alle einzelnen Zeichen einschließlich des "\n" zu suchen, kann '[.\n]' verwenden werden.
(Muster) Entspricht Muster und speichert die Entsprechung. Die gespeicherte Entsprechung kann aus der resultierenden Matches-Auflistung unter Verwendung der SubMatches-Auflistung in VBScript oder der $0?$9-Eigenschaften in JScript abgerufen werden. Um nach einer Entsprechung für Klammerzeichen ( ) zu suchen, verwenden Sie '\(' oder '\)'.
(?:Muster) Entspricht Muster, speichert die Entsprechung jedoch nicht, d. h., es handelt sich um eine nicht speichernde Entsprechung, die nicht für eine mögliche spätere Verwendung gespeichert wird. Dies ist von Nutzen, wenn Teile eines Musters mit dem "oder"-Zeichen (|) kombiniert werden sollen. So ist beispielsweise 'telefonier(?:t|en)' ein kürzerer Ausdruck als 'telefoniert|telefonieren'.
(?=Muster) Die positive Vorausschau entspricht der Suchzeichenfolge an allen Stellen, an denen eine Muster entsprechende Zeichenfolge beginnt. Dabei handelt es sich um eine nicht speichernde Entsprechung, d. h., die Entsprechung wird nicht für eine mögliche spätere Verwendung gespeichert. Beispielsweise entspricht 'Windows (?=95|98|NT|2000)' dem Wort "Windows" in "Windows 2000", jedoch nicht dem Wort "Windows" in "Windows 3.1". Vorausschauen verbrauchen keine Zeichen, d. h., nachdem eine Entsprechung gefunden wurde, beginnt die Suche nach der nächsten Entsprechung unmittelbar nach der letzten Entsprechung und nicht nach den Zeichen, aus denen die Vorausschau bestand.
(?!Muster) Die komplementäre Vorausschau entspricht der Suchzeichenfolge an allen Stellen, an denen eine Muster nicht entsprechende Zeichenfolge beginnt. Dabei handelt es sich um eine nicht speichernde Entsprechung, d. h., die Entsprechung wird nicht für eine mögliche spätere Verwendung gespeichert. Beispielsweise entspricht 'Windows (?!95|98|NT|2000)' dem Wort "Windows" in "Windows 3.1", jedoch nicht dem Wort "Windows" in "Windows 2000". Vorausschauen verbrauchen keine Zeichen, d. h., nachdem eine Entsprechung gefunden wurde, beginnt die Suche nach der nächsten Entsprechung unmittelbar nach der letzten Entsprechung und nicht nach den Zeichen, aus denen die Vorausschau bestand.
x|y Entspricht entweder x oder y. Beispielsweise entspricht 'sch|blau' entweder "sch" oder "blau". '(sch|b)lau' entspricht "schlau" oder "blau".
[xyz] Eine Menge von Zeichen. Entspricht allen enthaltenen Zeichen. Beispielsweise entspricht '[abc]' dem "a" in "fallen".
[^xyz] Eine Komplementmenge von Zeichen. Entspricht allen nicht enthaltenen Zeichen. Beispielsweise entspricht '[^abc]' dem "f" in "fallen".
[a-z] Ein Zeichenbereich. Entspricht allen Zeichen im angegebenen Bereich. Beispielsweise entspricht '[a-z]' allen Kleinbuchstaben im Bereich von "a" bis "z".
[^a-z] Ein Komplementbereich von Zeichen. Entspricht allen Zeichen, die im angegebenen Bereich nicht enthalten sind. Beispielsweise entspricht '[^a-z]' allen Zeichen, die nicht im Bereich von "a" bis "z" enthalten sind.
\b Entspricht einer Wortgrenze, d.h. der Position zwischen einem Wort und einem Leerzeichen. Beispielsweise entspricht 'er\b' dem "er" in "neuer", jedoch nicht dem "er" in "Verb". Weil \b eine Wortgrenze bedeutet, findet /\baus\b/ das Wort "aus" als einzelnes Wort.
\B \B entspricht einer Nichtwortgrenze. /er\B/ findet "er" in "Verb", jedoch nicht "er" in "neuer". /\Baus\B/ findet "aus" in "hausen" aber nicht in "Ballhaus".
\cx Entspricht dem Steuerzeichen, das durch x angegeben wird. Beispielsweise entspricht '\cM' einem STRG-M oder Wagenrücklaufzeichen. Der Wert von x muss im Bereich von A-Z oder a-z liegen. Ist dies nicht der Fall, wird c als "c"-Zeichenliteral interpretiert.
\d Entspricht einer Ziffer. Äquivalent zu '[0-9]'. Beispielsweise findet /\d.+\B/ eine beliebige ganze Zahl.
\D Entspricht einer Nichtziffer. Äquivalent zu '[^0-9]'. Beispielsweise findet /\D.+/ das Wort "-fach" in "4-fach", also keine Ziffer.
\f Entspricht einem Seitenvorschubzeichen. Äquivalent zu '\x0c' und '\cL'.
\n Entspricht einem Zeilenumbruchzeichen. Äquivalent zu '\x0a' und '\cJ'.
\r Entspricht einem Wagenrücklaufzeichen. Äquivalent zu '\x0d' und '\cM'.
\s Entspricht beliebigen Leerräumen wie Leerzeichen, Tabstopp, Seitenvorschub usw. Äquivalent zu '[ \f\n\r\t\v]'.
\S Entspricht beliebigen Nichtleerräumen. Äquivalent zu '[^ \f\n\r\t\v]'. /\S.+/ findet ein beliebiges einzelnes Zeichen, das kein white-space ist, also kein \f\n\t\v und kein Leerzeichen.
\t Entspricht einem Tabstoppzeichen. Äquivalent zu '\x09' und '\cI'.
\v Entspricht einem vertikalen Tabstoppzeichen. Äquivalent zu '\x0b' und '\cK'.
\w Entspricht allen Wortzeichen einschließlich Unterstrich. Äquivalent zu '[A-Za-z0-9_]'.
\W Entspricht allen Nichtwortzeichen. Äquivalent zu '[^A-Za-z0-9_]'.
\xn Entspricht n, wobei n ein hexadezimaler Escapewert ist. Hexadezimale Escapewerte müssen genau zwei Stellen aufweisen. '\x41' entspricht beispielsweise "A". '\x041' ist äquivalent zu "\x04" & "1". Ermöglicht die Verwendung von ASCII-Codes in regulären Ausdrücken.
\num Entspricht num, wobei num eine positive Ganzzahl ist. Ein Rückverweis auf gespeicherte Entsprechungen. Beispielsweise entspricht '(.)\1' zwei aufeinander folgenden identischen Zeichen.
\n Bezeichnet entweder einen oktalen Escapewert oder einen Rückverweis. Wenn \n mindestens n gespeicherte Unterausdrücke vorausgehen, handelt es sich bei n um einen Rückverweis. Anderenfalls ist n ein oktaler Escapewert, wenn n eine Oktalziffer (0-7) ist.
\nm Bezeichnet entweder einen oktalen Escapewert oder einen Rückverweis. Wenn \nm mindestens nm gespeicherte Unterausdrücke vorausgehen, handelt es sich bei nm um einen Rückverweis. Wenn \nm mindestens n gespeicherte Ausdrücke vorausgehen, ist n ein Rückverweis, dem das Literal m folgt. Wenn keine der vorhergehenden Bedingungen zutrifft, entspricht \nm dem oktalen Escapewert nm, wenn n und m Oktalziffern (0-7) sind.
\nml Entspricht dem oktalen Escapewert nml, wenn n eine Oktalziffer (0-3) ist und m und l Oktalziffern (0-7) sind.
\un Entspricht n, wobei n ein Unicodezeichen ist, das mit vier Hexadezimalziffern ausgedrückt wird. Beispielsweise entspricht '\u00A9' dem Copyrightsymbol (©).