Die folgende Liste umfaßt die in RegEx-Suchmustern verwendbaren Ausdrücke mit speziellen Bedeutungen.
Escapezeichen
\a
Klingelzeichen
\b
stellt in einer mit [] selbst definierten Zeichenklasse das Rücktastzeichen  dar
\t
Tabulator, 	
\r
Wagenrücklauf, &#D;
\v
vertikaler Tabulator, &#B;
\f
Seitenvorschub, &#C;
\n
neue Zeile, &#A;
\e
Escape-Zeichen, 
\040
ASCII-Zeichen als dreistellige Oktalzahl, hier wird das Leerzeichen dargestellt. Fehlt
die führende Null, ist nur eine Ziffer notiert und gibt es eine passende Aufzeichnungsgruppe mit dieser Nummer,
so wird diese eingesetzt.
\x3c
ASCII-Zeichen in hexadezimaler Schreibweise, hier die öffnende Spitzklammer < mit Code 3c
Der Punkt steht für alle Zeichen mit Ausnahme von \n. Ist die Single-Line-Option
gewählt, dann ist \n mit eingeschlossen.
[Menge von aufgezählten Zeichen]
Jedes einzelne Zeichen aus der Menge
[^Menge von aufgezählten Zeichen]
Jedes einzelne Zeichen, welches nicht zu dieser Menge gehört
[a-fk-z]
Jedes Zeichen aus dem Zeichenbereich 'a' bis 'f' oder 'k' bis 'z' wird gefunden
\p{IsUnicode-Block}
Jedes Zeichen des notierten Unicode-Blocks. Aus dem Blocknamen müssen alle
Leerzeichen entfernt und ein 'Is' davorgesetzt werden. Die zulässigen Unicode-Blöcke sind unter Unicode-Datenbank
gelistet
(Spalte 'NET', Y). Die gültigen Werte wurden durch Testen ermittelt.
\p{Unicode-Kategorie}
Jedes Zeichen der angegebenen Unicode-Kategorie. Die Kategorie ist
in Kurzform (\p{Mn} für die Kategorie 'Mark, Enclosing') zu notieren, hier werden alle 30 Kategorien unterstützt
\P{IsUnicode-Block|Kategorie}
Jedes Zeichen, welches nicht zum angegebenen Unicode-Block bzw. zur Kategorie gehört
\w
Ein beliebiges Wortzeichen aus den Unicode-Zeichenkategorien [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}].
Falls in .NET die ECMAScript-Konformität gefordert ist, stellt \w nur die Zeichen [a-zA-Z_0-9] dar.
\W
Ein beliebiges Nicht-Wortzeichen, die Verneinung von \w.
Falls in .NET die ECMAScript-Konformität gefordert ist, stellt \W die Zeichenmenge [^a-zA-Z_0-9] dar.
\s
Ein beliebiges Leerraumzeichen aus den Unicode-Zeichenkategorien [\f\n\r\t\v\x85\p{Z}].
Man beachte, daß NEL (#x85), die Zeilenendmarkierung auf Mainframes sowie #x2028, das Unicode-Zeichen für eine neue Zeile
als Element von \p{Zl}, hier mit aufgeführt ist. Xml-Dokumente der Version 1.1 können also konsistent verarbeitet werden.
Falls in .NET die ECMAScript-Konformität gefordert ist, stellt \s nur die Zeichen [ \f\n\r\t\v] dar.
\S
Ein beliebiges Nicht-Leerzeichen, die Verneinung von \s.
Falls in .NET die ECMAScript-Konformität gefordert ist, stellt \S die Zeichenmenge [^ \f\n\r\t\v] dar.
\d
Eine beliebige Dezimalziffer aus \p{Nd} bzw. [0-9] für ECMAScript-Konformität.
\D
Eine beliebige Nicht-Dezimalziffer bzw. [^0-9] für ECMAScript-Konformität.
Atomare Assertionen mit Breite Null
^
Der Vergleich muß am Anfang der Zeichenfolge erfolgen. Falls die Multiline-Option aktiv ist, wird
zusätzlich jeder Zeilenanfang gefunden
$
Der Vergleich muß am Ende der Zeichenfolge erfolgen. Ist Multiline aktiv, so wird zusätzlich
jedes Zeilenende gefunden
\A
Vergleich am Anfang der Zeichenfolge, unabhängig von Multiline
\Z
Vergleich am Ende der Zeichenfolge oder vor dem letzten \n am Ende, unabhängig von Multiline
\z
Vergleich am Ende der Zeichenfolge, unabhängig von Multiline
\G
Der Vergleich muß an der Stelle erfolgen, an welcher der vorige Vergleich geendet hat
\b
Verglichen wird an einer Begrenzung zwischen Wortzeichen (\w) und Nicht-Wortzeichen (\W), es
muß also eine Wortbegrenzung sein
\B
Die aktuelle Position darf keine Wortbegrenzung sein. Es muß sich also um eine Position innerhalb
eines Wortes oder innerhalb von Nicht-Wort-Zeichen handeln
Gruppierungen
()
Aufzeichnung der übereinstimmenden
Teilzeichenfolge, welche durch das Suchmuster innerhalb der Klammern gefunden wird. Das aufgezeichnete Ergebnis ist nur über eine Nummer erreichbar.
(?<name>) oder: (?'name')
Aufzeichnung der übereinstimmenden Teilzeichenfolge, hier ist das Ergebnis durch 'name' erreichbar. Die Version mit einfachen Hochkommata kann für aspx-Seiten genutzt werden.
(?:)
Nicht aufzeichnende Gruppe, falls aus logischen Gründen Klammern notwendig sind,
das durch die Klammern aufgezeichnete Teilergebnis jedoch nicht weiterverarbeitet wird. Dieses Konstrukt wird schneller als
die aufzeichnende Gruppe verarbeitet. Zum Testen empfielt es sich, benannte Teilzeichenfolgen großzügig zu verwenden. Funktioniert alles
wie gewünscht, ersetzt man alle nicht weiter benötigten Namen durch Doppelpunkte.
Rückverweise
\k<>
Sucht die durch die Nummer in
nach Position oder die durch den Namen in
definierte aufgezeichnete Teilzeichenfolge
\k''
Leistet genau dasselbe wie die vorige Zeile,
kann in Umgebungen genutzt werden, in welchen Spitzklammern Probleme verursachen können (aspx-Seiten)
Lookahead / Lookbehind-Assertionen der Breite Null
(?=)
Positive Lookahead-Assertion. Der Vergleich wird
nur fortgesetzt, falls auf die aktuelle Position die angegebene Zeichenfolge folgt. Das Konstrukt wird nicht rückwärts verarbeitet.
(?!)
Negative Lookahead-Assertion. Fortgesetzt wird,
falls auf die derzeitige Position die notierte Zeichenfolge nicht folgt
(?<=)
Positive Lookbehind-Assertion. Die Weiterverarbeitung
erfolgt, falls bis zur aktuellen Position die angegebene Zeichenfolge gefunden wurde. Keine Einbeziehung in die Rückwärtsverarbeitung.
(?<!)
Negative Lookbehind-Assertion. Die Suche wird fortgesetzt,
falls die angegebene Zeichenfolge vor der aktuellen Position nicht gefunden wurde.
Nicht zurückverfolgende Teilausdrücke
(?>)
Dies deklariert ein nicht zurückverfolgendes
Suchmuster (gieriger Teilausdruck, greedy subexpression). Der Ausdruck wird sofort maximal aufgelöst. Folgen im Suchmuster
weitere Zeichenkriterien, die mit dem längsten Ausdruck nicht gefunden werden können, so wird im Gegensatz zum Standardhandling
nicht versucht, durch zeichenweises Verkürzen der Teilzeichenfolge doch noch eine Übereinstimmung zu finden.
Quantifikatoren
Quantifikatoren legen fest, wie oft der zuvor notierte Ausdruck mindestens/höchstens/genau auftreten muß, um
eine positive Übereinstimmung zurückzugeben. Es gibt drei vordefinierte (*/+/?) sowie selbstdefinierte
Quantifikatoren, letztere werden durch Zahlen in geschweiften Klammern ausgedrückt. Fehlt ein Quantifikator, so entspricht
dies {1}, der Ausdruck muß genau einmal gefunden werden.
*
Null oder mehr Übereinstimmungen, kann auch als {0,} notiert werden
+
Eine oder mehr Übereinstimmungen, gleichbedeutend zu {1,}
?
Null oder eine Übereinstimmung, wie {0, 1}
{n}
Fordert genau n Übereinstimmungen
{n,}
Mindestens n Übereinstimmungen erfüllen
{n,m}
Mindestens n, höchstens m Übereinstimmungen sind erlaubt
*?
gibt die Übereinstimmung mit möglichst wenigen Wiederholungen an (lazy *)
+?
wie lazy *, jedoch mit mindestens einer Übereinstimmung
??
gibt, falls möglich, null Wiederholungen an, ansonsten eine
{n}?
entspricht {n}
{n,}?
gibt möglichst wenige Wiederholungen an, mindestens jedoch n viele
{n,m}?
gibt so wenige Wiederholungen zwischen n und m an wie möglich
Alternierungen
|
Sucht zunächst nach dem links vom Balken stehenden Ausdruck. Kann dieser nicht gefunden
werden, wird versucht, den rechts stehenden Ausdruck zu nutzen, bevor die aktuelle Position endgültig verworfen wird.
(?()|)
If/Then-Verzweigung. Der erste Ausdruck wird als positives Lookahead interpretiert. Ist dieses erfolgreich, so
wird der zweite Ausdruck, ansonsten der Ausdruck nach | geprüft.
Sonstige Konstrukte
(?imnsx-imnsx:)
Inline-Änderung einer
der Optionen IgnoreCase (i), Multiline (m), ExplicitCapture (n), Singleline (s) oder IgnorePatternWhitespace (x).
Jede dieser Optionen kann innerhalb dieser Klammer neu gesetzt werden und überschreibt entweder den Standardwert oder
den bei der Objekterzeugung festgelegten Wert. Diese Inline-Optionen können geschachtelt werden, so daß eine Option
in einer Klammer zunächst gesetzt und in einer inneren Klammer wieder aufgehoben wird.
(?#)
Inline-Kommentar. Bis zur schließenden Klammer können beliebige Zeichen folgen, die gesamte Zeichenfolge
wird ignoriert. Beispiel: (\b\w+?\b(?# Suche nach einem Wort))
# bis zum nächsten Zeilenende
Falls die Option IgnorePatternWhitespace (kurz: x) gesetzt ist, kann hierdurch der Rest dieser Zeile
als Kommentar notiert werden. Dies ist sinnvoll bei umfangreicheren Ausdrücken, die auf mehrere kommentierte
Zeilen verteilt werden können
Optionen
Die Optionen können bei der Erstellung eines RegEx-Objektes festgelegt werden. Folgt auf die Option ein Kleinbuchstabe,
so kann dieser als Inline-Darstellung der Option genutzt werden.
IgnoreCase / i
Ignoriert Groß/Kleinschreibung, die Suche nach regex
findet auch RegEx lernen
SingleLine / s
Aktivierung des Einzeilenmodus: Der Punkt akzeptiert
auch den Zeilenwechsel \n, also alle Zeichen. Falls diese Option nicht gesetzt ist, erkennt der Punkt jedes Zeichen mit Ausnahme von \n.
Multiline / m
Mehrzeilenmodus: Falls diese Option gewählt ist, findet ^ jeden
Beginn einer neuen Zeile und $ jedes Zeilenende sowie die Position vor dem Ende der
Zeichenfolge bzw. vor dem letzten \n. Falls die Option fehlt, finden die beiden Ausdrücke nur den absoluten Beginn bzw. das
Ende der Eingabezeichenfolge.
ExplicitCapture / n
Alle aufzeichnenden Gruppen müssen explizit benannt werden. Fehlt ein Name,
wird die Gruppe nicht aufgezeichnet, als äquivalent zu (?: ) betrachtet
IgnorePatternWhitespace / x
Kommentarmodus: Alle WhiteSpace ohne explizite Maskierung durch
\ werden entfernt, das Suchmuster kann Zeilenumbrüche enthalten.
Zwischen # und Zeilenende sind Kommentare notiert
RightToLeft
Durchsucht die Zeichenfolge von rechts nach links anstatt umgekehrt. Innerhalb des Suchmusters
wird nichts umgedreht
CultureInvariant
Bei zusätzlich genutzter Option IgnoreCase werde Vergleiche der Groß-Kleinschreibung
kulturinvariant durchgeführt
ECMAScript
Stellt die Kompatibilität zu ECMAScript her: Die Zeichenklassen \w, \s und \d werden
um Unicode-Varianten verkleinert. Ferner gibt es drei Unterschiede in der Behandlung von uneindeutigen Rückverweisen, die
als Oktalzahlen oder als Rückverweise interpretiert werden können. Diese werden jedoch hier nicht näher erläutert, man möge
benannte Teilzeichenfolgen verwenden
Compiled
Der Code wird in eine Assembly kompiliert, bei wiederholter Ausführung ist dies schneller.
Der Code kann jedoch nicht mehr beim Zerstören des RegEx-Objektes, sondern nur noch durch ein Entladen der Domäne entfernt
werden, so daß bei wiederholtem Kompilieren Speicherlecks auftreten können.
None
Es wurde keine Option festgelegt
Link zur hiesigen Seite als QR-Code
Kontaktformular:
Schreiben Sie mir und wir bauen gemeinsam Ihre neue Web-Datenbank!
Mit dem Klick auf den Button stimmen Sie zu, daß Cookies in Ihrem Browser gespeichert werden. Informationen zu den gespeicherten Cookies finden Sie unter Datenschutz#Cookies.Bei Fragen zur Technik wenden Sie sich bitte an Server-Daten - Web-Datenbank-Lösungen