Optionen für reguläre Ausdrücke
Aktualisiert: November 2007
Sie können ein Muster für reguläre Ausdrücke mit Optionen modifizieren, die sich auf das Vergleichsverhalten auswirken. Optionen für reguläre Ausdrücke können auf zwei Arten angegeben werden: entweder im options-Parameter im Regex(Muster, Optionen)-Konstruktor, wobei options eine bitweise OR-Kombination aus RegexOptions-Enumerationswerten ist, oder innerhalb des Musters für den regulären Ausdruck mithilfe des Inline-Gruppierungskonstrukts (?imnsx-imnsx:) oder des Konstrukts (?imnsx-imnsx), das zu den verschiedenen Konstrukten gehört.
In Inlineoptionskonstrukten deaktiviert ein Minuszeichen (-) vor einer Option oder einer Gruppe von Optionen diese Optionen. Beispielsweise aktiviert das Inlinekonstrukt (?ix-ms) die IgnoreCase-Option und die IgnorePatternWhiteSpace-Option und deaktiviert die Multiline-Option und die Singleline-Option. Alle Optionen für reguläre Ausdrücke sind standardmäßig deaktiviert.
Die folgende Tabelle enthält eine Auflistung der Member der RegexOptions-Enumeration und der entsprechenden Zeichen für die Inlineoptionen. Beachten Sie, dass die RightToLeft-Option und die Compiled-Option nur für einen Ausdruck als Ganzes gelten und nicht inline verwendet werden können. (Diese Optionen können nur im options-Parameter für den Regex-Konstruktor angegeben werden.) Die None- und die ECMAScript-Option sind ebenfalls inline nicht zulässig.
RegexOption-Member |
Inlinezeichen |
Beschreibung |
---|---|---|
Keiner |
Nicht zutreffend |
Gibt an, dass keine Optionen festgelegt wurden. |
IgnoreCase |
i |
Gibt an, dass bei Übereinstimmungen die Groß-/Kleinschreibung berücksichtigt werden muss. |
Multiline |
m |
Gibt den Mehrzeilenmodus an. Ändert die Bedeutung von ^ und $, sodass sie jeweils dem Anfang und dem Ende einer beliebigen Zeile und nicht nur dem Anfang und dem Ende der gesamten Zeichenfolge entsprechen. |
ExplicitCapture |
n |
Gibt an, dass die einzigen gültigen Aufzeichnungen explizit benannte oder nummerierte Gruppen in der Form (?<Name>…) sind. Dadurch können Klammern als nicht aufzeichnende Gruppen eingesetzt werden, ohne dass die umständliche Syntax des Ausdrucks (?:…) benötigt wird. |
Compiled |
Nicht zutreffend |
Gibt an, dass der reguläre Ausdruck in eine Assembly kompiliert wird. Generiert MSIL (Microsoft Intermediate Language)-Code für den regulären Ausdruck und ermöglicht eine schnellere Ausführung, jedoch auf Kosten der kurzen Startdauer. |
Singleline |
s |
Gibt den Einzeilenmodus an. Ändert die Bedeutung des Punktes (.), sodass dieser jedem Zeichen entspricht (und nicht jedem Zeichen mit Ausnahme von \n). |
IgnorePatternWhitespace |
x |
Gibt an, dass Leerraum ohne Escapezeichen aus dem Muster ausgeschlossen wird, und ermöglicht Kommentare hinter einem Nummernzeichen (#). (Eine Liste der Leerraumzeichen mit Escapezeichen finden Sie unter Escapezeichen.) Beachten Sie, dass Leeraum niemals aus einer Zeichenklasse eliminiert wird. |
RightToLeft |
Nicht zutreffend |
Gibt an, dass die Suche von rechts nach links und nicht von links nach rechts durchgeführt wird. Ein regulärer Ausdruck mit dieser Option steht links von der Anfangsposition und nicht rechts davon. (Daher sollte die Anfangsposition als das Ende der Zeichenfolge angegeben werden und nicht als der Anfang.) Diese Option kann nicht mitten im Stream angegeben werden. Dadurch wird verhindert, dass reguläre Ausdrücke mit Endlosschleifen erstellt werden. Die (?<)-Lookbehindkonstrukte bieten jedoch eine ähnliche Funktionalität, die als Teilausdruck verwendet werden kann. RightToLeft ändert lediglich die Suchrichtung. Die gesuchte untergeordnete Zeichenfolge wird nicht umgekehrt. Die lookahead-Assertion und die lookbehind-Assertion ändern sich nicht: Bei Lookahead wird nach rechts gesucht, und bei Lookbehind wird nach links gesucht. |
ECMAScript |
Nicht zutreffend |
Gibt an, dass für den Ausdruck ECMAScript-konformes Verhalten aktiviert ist. Diese Option kann nur in Verbindung mit dem IgnoreCase-Flag und dem Multiline-Flag verwendet werden. Bei Verwendung dieser Option mit anderen Flags wird eine Ausnahme ausgelöst. |
CultureInvariant |
Nicht zutreffend |
Gibt an, dass kulturelle Unterschiede bei der Sprache ignoriert werden. Weitere Informationen finden Sie unter Durchführen kulturunabhängiger Operationen im RegularExpressions-Namespace. |