Kurzübersicht über reguläre Ausdrücke
Reguläre Ausdrücke sind Muster, für die das Modul für reguläre Ausdrücke eine Entsprechung im Eingabetext sucht. Muster können aus einem oder mehr Zeichenliteralen, Operatoren oder Konstrukten bestehen.
Jeder Abschnitt dieser Kurzübersicht enthält eine bestimmte Kategorie von Zeichen, Operatoren oder Konstrukten, mit denen Sie reguläre Ausdrücke definieren können:
Die unten aufgeführten Informationen sind ein Auszug aus der Dokumentation welche von Microsoft bereitgestellt wurde. Das Original kann hier eingesehen werden.
Escapezeichen
Der umgekehrte Schrägstrich (\) in einem regulären Ausdruck gibt an, dass es sich bei dem darauf folgenden Zeichen um ein Sonderzeichen handelt (wie in der folgenden Tabelle gezeigt) oder dass das Zeichen als solches interpretiert werden soll.
Escapezeichen | Beschreibung | Muster | Übereinstimmung |
---|---|---|---|
\a | Entspricht einem Klingelzeichen (Warnsignal) \u0007. |
| "\u0007" in "Fehler!" + '\u0007' |
\b | Entspricht in einer Zeichenklasse einem Rücktastenzeichen \u0008. |
| "\b\b\b\b" in "\b\b\b\b" |
\t | Entspricht einem Tabstoppzeichen \u0009. |
| "Element1\t", "Element2\t" in "Element1\tElement2\t" |
\r | Entspricht einem Wagenrücklaufzeichen \u000D. ( |
| "\r\nDies" in "\r\nDies sind\nzwei Zeilen." |
\v | Entspricht einem vertikalen Tabstoppzeichen \u000B. |
| "\v\v\v" in "\v\v\v" |
\f | Entspricht einem Seitenvorschubzeichen \u000C. |
| "\f\f\f" in "\f\f\f" |
\n | Entspricht einer neuen Zeile \u000A. |
| "\r\nDies" in "\r\nDies sind\nzwei Zeilen." |
\e | Entspricht einem Escapezeichen \u001B. |
| "\x001B" in "\x001B" |
\ nnn | Verwendet die oktale Darstellung, um ein Zeichen anzugeben (nnn besteht aus zwei oder drei Ziffern). |
| "a b", "c d" in "a bc d" |
\x nn | Verwendet die hexadezimale Darstellung, um ein Zeichen anzugeben (nnbesteht genau aus zwei Ziffern). |
| "a b", "c d" in "a bc d" |
\c X \c x | Entspricht dem durch X oder xangegebenen ASCII-Steuerzeichen, wobei Xoder x der Buchstabe des Steuerzeichens ist. |
| "\x0003" in "\x0003" (Strg-C) |
\u nnnn | Entspricht einem Unicode-Zeichen in hexadezimaler Darstellung (genau vier Stellen, dargestellt durch nnnn). |
| "a b", "c d" in "a bc d" |
\ | Entspricht dem angegebenen Zeichen, wenn darauf ein Zeichen folgt, das in dieser und anderen Tabellen in diesem Thema nicht als Escapezeichen erkannt wird. Beispielsweise ist |
| „2+2“ und „3*9“ in „(2+2) * 3*9“ |
Zeichenklassen
Eine Zeichenklasse entspricht einer beliebigen Reihe von Zeichen. Zeichenklassen verwenden die in der folgenden Tabelle aufgeführten Sprachelemente.
Zeichenklasse | Beschreibung | Muster | Übereinstimmung |
---|---|---|---|
| Entspricht einem beliebigen einzelnen Zeichen in character_group. Bei der Entsprechung wird standardmäßig die Groß- und Kleinschreibung berücksichtigt. |
| "a" in "wage" "a", "e" in "klasse" |
| Negation: Entspricht jedem beliebigen einzelnen Zeichen, das nicht in character_group enthalten ist. Standardmäßig wird bei Zeichen in character_group die Groß-/Kleinschreibung beachtet. |
| "r", "g", "n" in "ringen" |
| Zeichenbereich: Entspricht jedem beliebigen einzelnen Zeichen im Bereich von first bis last. |
| "A", "B" in "AB123" |
| Platzhalterzeichen: Entspricht jedem beliebigen einzelnen Zeichen außer \n. Damit es einem Punkt als Literalzeichen entspricht ("." oder oder |
| "ade" in "gerade" "ase" in "klasse" |
| Entspricht jedem beliebigen Zeichen, das sich in der allgemeinen Unicode-Kategorie oder einem von nameangegebenen benannten Block befindet. |
| "S", "M" in "Staatliche Museen" "Д", "Ж" in "ДЖem" |
| Entspricht jedem beliebigen Zeichen, das sich nicht in der allgemeinen Unicode-Kategorie oder einem von nameangegebenen benannten Block befindet. |
| "a", "d", "t" in "Stadt" "e", "m" in "ДЖem" |
| Entspricht einem beliebigen Wortzeichen. |
| "I", "D", "A", "1", "3" in "ID A1.3" |
| Entspricht einem beliebigen Nichtwortzeichen. |
| " ", "." in "ID A1.3" |
| Entspricht einem beliebigen Leerraumzeichen. |
| "D " in "ID A1.3" |
| Entspricht einem beliebigen Nicht-Leerraumzeichen. |
| " _" in "int __ctr" |
| Entspricht einer beliebigen Dezimalziffer. |
| "4" in "4 = IV" |
| Entspricht einem beliebigen Zeichen, das keine Dezimalziffer ist. |
| " ", "=", " ", "I", "V" in "4 = IV" |
Anker
Anchor oder atomare Assertionen mit einer Breite von Null bewirken, dass, in Abhängigkeit von der Position in der Zeichenfolge, eine Entsprechung gefunden oder nicht gefunden wird. Sie bewirken jedoch nicht, dass die Engine die Zeichenfolge durchläuft oder Zeichen verwendet. Die Metazeichen in der folgenden Tabelle sind Anchor.
Assertion | Beschreibung | Muster | Übereinstimmung |
---|---|---|---|
| Die Übereinstimmung muss standardmäßig zu Anfang der Zeichenfolge beginnen. Im Mehrzeilenmodus muss sie am Anfang der Zeile beginnen. |
| "901" in "901-333-" |
| Die Übereinstimmung muss standardmäßig am Ende der Zeichenfolge oder vor |
| "-333" in "-901-333" |
| Der Vergleich muss am Beginn der Zeichenfolge erfolgen. |
| "901" in "901-333-" |
| Der Vergleich muss am Ende der Zeichenfolge oder vor |
| "-333" in "-901-333" |
| Der Vergleich muss am Ende der Zeichenfolge erfolgen. |
| "-333" in "-901-333" |
| Der Vergleich muss an dem Punkt erfolgen, an dem der vorherige Vergleich beendet wurde. |
| "(1)", "(3)", "(5)" in "(1)(3)(5)[7](9)" |
| Der Vergleich muss an einer Begrenzung zwischen einem |
| "dem demnach", "dem dem" in "dem demnach dem dem" |
| Der Vergleich darf nicht an einer |
| "ends", "ender" in "end sendet endete sender" |
Gruppierungskonstrukte
Gruppierungskonstrukte grenzen Teilausdrücke eines regulären Ausdrucks ab und zeichnen gewöhnlich Teilzeichenfolgen einer Eingabezeichenfolge auf. Gruppierungskonstrukte verwenden die Sprachelemente in der folgenden Tabelle.
Gruppierungskonstrukt | Beschreibung | Muster | Übereinstimmung |
---|---|---|---|
| Zeichnet den übereinstimmenden Teilausdruck auf und weist diesem eine einsbasierte Ordinalzahl zu. |
| "aa" in "paarweise" |
| Zeichnet den übereinstimmenden Teilausdruck in einer benannten Gruppe auf. |
| "aa" in "paarweise" |
| Definiert eine Ausgleichsgruppendefinition. |
| "((1-3)*(3-1))" in "3+2^((1-3)*(3-1))" |
| Definiert eine Nicht-Erfassungsgruppe. |
| "WriteLine" in "Console.WriteLine()" "Write" in "Console.Write(value)" |
| Aktiviert oder deaktiviert die angegebenen Optionen in subexpression. |
| "A12xl", "A12XL" in "A12xl A12XL a12xl" |
| Positive Lookaheadassertion mit einer Breite von Null. |
| "is", "ren" und "weg" in "Er isst. Der Hund rennt. Die Sonne ist weg." |
| Negative Lookaheadassertion mit einer Breite von Null. |
| "sicher", "mischt" in "unsicher sicher unter mischt" |
| Positive Lookbehindassertion mit einer Breite von Null. |
| "99", "50", "05" in "1851 1999 1950 1905 2003" |
| Negative Lookbehindassertion mit einer Breite von Null. |
| "51", "03" in "1851 1999 1950 1905 2003" |
| Nicht zurückverfolgender ("gieriger") Teilausdruck. |
| "1ABB", "3ABB", and "5AB" in "1ABB 3ABBC 5AB 5AC" |
Quantifizierer
Quantifizierer geben an, wie viele Instanzen des vorherigen Elements (bei dem es sich um ein Zeichen, eine Gruppe oder eine Zeichenklasse handeln kann) in der Eingabezeichenfolge vorhanden sein müssen, damit eine Entsprechung gefunden wird.Quantifizierer verwenden die Sprachelemente in der folgenden Tabelle.
Quantifizierer | Beschreibung | Muster | Übereinstimmung |
---|---|---|---|
Entspricht dem vorangehenden Element nicht oder mehrmals. |
| ".0", "19.9", "219.9" | |
| Entspricht dem vorangehenden Element einmal oder mehrmals. |
| "bei" in beim"", "be" in "bei" |
| Entspricht dem vorangehenden Element nicht oder einmal. |
| "ran", "rain" |
| Entspricht dem vorangehenden Element genau n -mal. |
| ",043" in "1,043.6", ",876", ",543" und ",210" in "9,876,543,210" |
| Entspricht dem vorangehenden Element mindestens n -mal. |
| "166", "29", "1930" |
| Entspricht dem vorangehenden Element mindestens n -, höchstens jedoch m -mal. |
| "166", "17668" "19302" in "193024" |
| Entspricht dem vorangehenden Element nicht oder mehrmals, jedoch so wenige Male wie möglich. |
| ".0", "19.9", "219.9" |
| Entspricht dem vorangehenden Element ein- oder mehrmals, jedoch so wenige Male wie möglich. |
| "be" in "beim", "be" in "bei" |
| Entspricht dem vorangehenden Element nicht oder einmal, jedoch so wenige Male wie möglich. |
| "ran", "rain" |
| Entspricht dem vorangehenden Element genau n -mal. |
| ",043" in "1,043.6", ",876", ",543" und ",210" in "9,876,543,210" |
| Entspricht dem vorangehenden Element mindestens n -mal, jedoch so wenige Male wie möglich. |
| "166", "29", "1930" |
| Entspricht dem vorangehenden Element zwischen n - und m -mal, jedoch so wenige Male wie möglich. |
| "166", "17668" "193", "024" in "193024" |
Rückverweiskonstrukte
Ein Rückverweis ermöglicht es, einen zuvor gefundenen Teilausdruck später im gleichen regulären Ausdruck zu identifizieren. In der folgenden Tabelle sind die Rückverweiskonstrukte aufgeführt, die von unterstützt werden.
Rückverweiskonstrukt | Beschreibung | Muster | Übereinstimmung |
---|---|---|---|
| Rückverweis. Entspricht dem Wert eines nummerierten Teilausdrucks. |
| "ee" in "beseelt" |
| Benannter Rückverweis. Entspricht dem Wert eines benannten Ausdrucks. |
| "ee" in "beseelt" |
Alternierungskonstrukte
Alternierungskonstrukte ändern einen regulären Ausdruck, um entweder/oder-Vergleiche zuzulassen. Diese Konstrukte verwenden die Sprachelemente in der folgenden Tabelle.
Alternierungskonstrukt | Beschreibung | Muster | Übereinstimmung |
---|---|---|---|
| Entspricht jedem beliebigen durch einen senkrechten Strich (|) getrennten Element. |
| "the", "this" in "This is the day. " |
| Entspricht yes , wenn das von expression angegebene Muster für reguläre Ausdrücke übereinstimmt. Andernfalls entspricht es dem optionalen no .expression wird als Assertion mit einer Breite von Null interpretiert. |
| "A10", "910" in "A10 C103 910" |
| Entspricht yes , wenn name, eine benannte oder nummerierte Erfassungsgruppe, eine Übereinstimmung aufweist. Andernfalls entspricht es dem optionalen no. |
| Hund.jpg, "Yiska spielt.jpg" in "Hund.jpg "Yiska spielt.jpg"" |
Ersetzungen
Ersetzungen sind Sprachelemente regulärer Ausdrücke, die in Ersetzungsmustern unterstützt werden. Die Metazeichen in der folgenden Tabelle sind atomare Assertionen mit einer Breite von Null.
Zeichen | Beschreibung | Muster | Ersetzungsmuster | Eingabezeichenfolge | Ergebniszeichenfolge |
---|---|---|---|---|---|
| Ersetzt die untergeordnete Zeichenfolge, die der numbereiner Gruppe entspricht. |
|
| "one two" | "two one" |
| Ersetzt die untergeordnete Zeichenfolge, die dem genannten nameder Gruppe entspricht. |
|
| "one two" | "two one" |
| Ersetzt ein "$"-Literal. |
|
| "103 USD" | "$103" |
| Ersetzt eine Kopie der gesamten Entsprechung. |
|
| "$1.30" | "**$1.30**" |
| Ersetzt den gesamten Text der Eingabezeichenfolge vor der Entsprechung. |
|
| "AABBCC" | "AAAACC" |
| Ersetzt den gesamten Text der Eingabezeichenfolge nach der Entsprechung. |
|
| "AABBCC" | "AACCCC" |
| Ersetzt die zuletzt erfasste Gruppe. |
|
| "AABBCCDD" | "AACCDD" |
| Ersetzt die gesamte Eingabezeichenfolge. |
|
| "AABBCC" | "AAAABBCCCC" |
Optionen für reguläre Ausdrücke
Sie können Optionen angeben, die steuern, wie die Engine für reguläre Ausdrücke ein Muster des regulären Ausdrucks interpretiert.Viele dieser Optionen können entweder inline (im Muster des regulären Ausdrucks) oder als eine oder mehrere RegexOptions-Konstanten angegeben werden. Diese Kurzübersicht enthält nur Inlineoptionen.
Sie können eine Inlineoption auf zwei Arten angeben:
Mit dem Konstrukt
(?imnsx-imnsx)
, wobei ein vor einer Option oder Optionsgruppe stehendes Minuszeichen (-) die betreffenden Optionen deaktiviert. Zum Beispiel aktiviert(?i-mn)
Übereinstimmungen ohne Berücksichtigung der Groß-/Kleinschreibung (i
), deaktiviert Mehrzeilenmodus (m
) und deaktiviert unbenannte Gruppenerfassungen (n
). Die Option gilt für das Muster des regulären Ausdrucks ab dem Punkt, an dem die Option definiert ist, und ist entweder bis zum Ende des Musters oder bis zu dem Punkt gültig, an dem ein anderes Konstrukt die Option umkehrt.Mit Gruppierungskonstrukte in regulären Ausdrücken
(?imnsx-imnsx:
Teilausdruck)
, das die Optionen nur für die angegebene Gruppe definiert.
Folgende Inlineoptionen werden unterstützt-
Option | Beschreibung | Muster | Übereinstimmung |
---|---|---|---|
| Groß-/Kleinschreibung bei der Suche ignorieren |
| "Aale" und "Aasblumen" in "Aale essen Aasblumen roh" |
| Mehrzeilenmodus verwenden. | ||
| Einzeilenmodus verwenden |
Verschiedene Konstrukte
Verschiedene Konstrukte ändern Muster von regulären Ausdrücken oder stellen Informationen darüber bereit. In der folgenden Tabelle sind die verschiedenen Konstrukte aufgeführt, die unterstützt werden.
Konstrukt | Definition | Beispiel |
---|---|---|
| Aktiviert oder deaktiviert Optionen wie die Groß-/Kleinschreibung mitten in einem Muster. |
|
| Inlinekommentar. Der Kommentar endet bei der ersten schließenden Klammer. |
|
| X‑Modus-Kommentar. Der Kommentar beginnt bei einem |
|