RegexOptions Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt aufgezählte Werte bereit, die zum Festlegen von Optionen für reguläre Ausdrücke verwendet werden sollen.
Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.
public enum class RegexOptions
[System.Flags]
public enum RegexOptions
[<System.Flags>]
type RegexOptions =
Public Enum RegexOptions
- Vererbung
- Attribute
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| None | 0 | Gibt an, dass keine Optionen festgelegt sind. Weitere Informationen zum Standardverhalten des Regulären Ausdrucksmoduls finden Sie im Abschnitt "Standardoptionen" im Artikel " Optionen für reguläre Ausdrücke ". |
| IgnoreCase | 1 | Gibt den Abgleich zwischen Groß- und Kleinschreibung an. Weitere Informationen finden Sie im Abschnitt "Case-Insensitive Abgleich" im Artikel "Optionen für reguläre Ausdrücke ". |
| Multiline | 2 | Mehrzeilenmodus. Ändert die Bedeutung von ^ und $ so, dass sie am Anfang bzw. Am Ende einer Zeile und nicht nur am Anfang und Ende der gesamten Zeichenfolge übereinstimmen. Weitere Informationen finden Sie im Abschnitt "Mehrzeilenmodus" im Artikel " Optionen für reguläre Ausdrücke ". |
| ExplicitCapture | 4 | Gibt an, dass die einzigen gültigen Erfassungen explizit benannte oder nummerierte Gruppen des Formulars sind (?<name>...). Auf diese Weise können unbenannte Klammern als nicht gekapselte Gruppen ohne syntaktische Slumsigkeit des Ausdrucks (?:...). Weitere Informationen finden Sie im Abschnitt "Nur explizite Erfassungen" im Artikel " Optionen für reguläre Ausdrücke ". |
| Compiled | 8 | Gibt an, dass der reguläre Ausdruck in MSIL-Code kompiliert wird, anstatt interpretiert zu werden. Kompilierte reguläre Ausdrücke maximieren die Laufzeitleistung auf Kosten der Initialisierungszeit. Dieser Wert sollte der Options Eigenschaft beim Aufrufen der CompileToAssembly(RegexCompilationInfo[], AssemblyName) Methode nicht zugewiesen werden. Weitere Informationen finden Sie im Abschnitt "Kompilierte reguläre Ausdrücke" im Artikel " Reguläre Ausdrucksoptionen ". |
| Singleline | 16 | Gibt den Einzelzeilenmodus an. Ändert die Bedeutung des Punkts (.), sodass es jedem Zeichen (anstelle jedes Zeichens außer \n) entspricht. Weitere Informationen finden Sie im Abschnitt "Einzelzeilenmodus" im Artikel " Optionen für reguläre Ausdrücke ". |
| IgnorePatternWhitespace | 32 | Entfernt nicht gescapete Leerzeichen aus dem Muster und aktiviert Kommentare, die mit "#" gekennzeichnet sind. Dieser Wert wirkt sich jedoch nicht auf Leerzeichen in Zeichenklassen, numerischen Quantifizierern oder Token aus, die den Anfang einzelner Sprachelemente für reguläre Ausdrücke markieren. Weitere Informationen finden Sie im Abschnitt "Leerzeichen ignorieren" des Artikels "Optionen für reguläre Ausdrücke ". |
| RightToLeft | 64 | Gibt an, dass die Suche von rechts nach links statt von links nach rechts erfolgt. Weitere Informationen finden Sie im Abschnitt "Rechts-nach-links-Modus" im Artikel " Optionen für reguläre Ausdrücke ". |
| ECMAScript | 256 | Aktiviert das ECMAScript-kompatible Verhalten für den Ausdruck. Dieser Wert kann nur in Verbindung mit den IgnoreCaseWerten Multilineverwendet Compiled werden. Die Verwendung dieses Werts mit allen anderen Werten führt zu einer Ausnahme. Weitere Informationen zur ECMAScript Option finden Sie im Abschnitt "ECMAScript-Abgleichsverhalten" im Artikel " Optionen für reguläre Ausdrücke ". |
| CultureInvariant | 512 | Gibt an, dass kulturelle Unterschiede in der Sprache ignoriert werden. Weitere Informationen finden Sie im Abschnitt "Vergleich mithilfe der Invarianten Kultur" im Artikel " Optionen für reguläre Ausdrücke ". |
| NonBacktracking | 1024 | Aktivieren Sie den Abgleich mithilfe eines Ansatzes, der das Nachverfolgen verhindert und die lineare Verarbeitung in der Länge der Eingabe garantiert. |
Beispiele
Im folgenden Beispiel werden zwei reguläre Ausdrücke definiert, die wiederholte Wörter in Text identifizieren, die jedoch mit unterschiedlichen RegexOptions Werten instanziiert werden. Bei dem ersten regulären Ausdruck wird die Groß-/Kleinschreibung nicht beachtet. Groß-/Kleinschreibung wird ignoriert, wenn ermittelt wird, ob ein Wort mit dem vorhergehenden Wort identisch ist. Bei dem zweiten regulären Ausdruck wird die Groß-/Kleinschreibung beachtet. ein Wort muss mit der Groß-/Kleinschreibung des vorhergehenden Worts übereinstimmen, um genau als Duplikat betrachtet zu werden.
using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main ()
{
// Define a case-insensitive regular expression for repeated words.
Regex rxInsensitive = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
RegexOptions.Compiled | RegexOptions.IgnoreCase);
// Define a case-sensitive regular expression for repeated words.
Regex rxSensitive = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
RegexOptions.Compiled);
// Define a test string.
string text = "The the quick brown fox fox jumps over the lazy dog dog.";
// Find matches using case-insensitive regular expression.
MatchCollection matches = rxInsensitive.Matches(text);
// Report the number of matches found.
Console.WriteLine("{0} matches found in:\n {1}",
matches.Count,
text);
// Report on each match.
foreach (Match match in matches)
{
GroupCollection groups = match.Groups;
Console.WriteLine("'{0}' repeated at positions {1} and {2}",
groups["word"].Value,
groups[0].Index,
groups[1].Index);
}
Console.WriteLine();
// Find matches using case-sensitive regular expression.
matches = rxSensitive.Matches(text);
// Report the number of matches found.
Console.WriteLine("{0} matches found in:\n {1}",
matches.Count,
text);
// Report on each match.
foreach (Match match in matches)
{
GroupCollection groups = match.Groups;
Console.WriteLine("'{0}' repeated at positions {1} and {2}",
groups["word"].Value,
groups[0].Index,
groups[1].Index);
}
}
}
// The example produces the following output to the console:
// 3 matches found in:
// The the quick brown fox fox jumps over the lazy dog dog.
// 'The' repeated at positions 0 and 4
// 'fox' repeated at positions 20 and 25
// 'dog' repeated at positions 50 and 54
//
// 2 matches found in:
// The the quick brown fox fox jumps over the lazy dog dog.
// 'fox' repeated at positions 20 and 25
// 'dog' repeated at positions 50 and 54
Imports System.Text.RegularExpressions
Public Module Test
Public Sub Main()
' Define a case-insensitive regular expression for repeated words.
Dim rxInsensitive As New Regex("\b(?<word>\w+)\s+(\k<word>)\b", _
RegexOptions.Compiled Or RegexOptions.IgnoreCase)
' Define a case-sensitive regular expression for repeated words.
Dim rxSensitive As New Regex("\b(?<word>\w+)\s+(\k<word>)\b", _
RegexOptions.Compiled)
' Define a test string.
Dim text As String = "The the quick brown fox fox jumps over the lazy dog dog."
' Find matches using case-insensitive regular expression.
Dim matches As MatchCollection = rxInsensitive.Matches(text)
' Report the number of matches found.
Console.WriteLine("{0} matches found in:", matches.Count)
Console.WriteLine(" {0}", text)
' Report on each match.
For Each match As Match In matches
Dim groups As GroupCollection = match.Groups
Console.WriteLine("'{0}' repeated at positions {1} and {2}", _
groups.Item("word").Value, _
groups.Item(0).Index, _
groups.Item(1).Index)
Next
Console.WriteLine()
' Find matches using case-sensitive regular expression.
matches = rxSensitive.Matches(text)
' Report the number of matches found.
Console.WriteLine("{0} matches found in:", matches.Count)
Console.WriteLine(" {0}", text)
' Report on each match.
For Each match As Match In matches
Dim groups As GroupCollection = match.Groups
Console.WriteLine("'{0}' repeated at positions {1} and {2}", _
groups.Item("word").Value, _
groups.Item(0).Index, _
groups.Item(1).Index)
Next
Console.WriteLine()
End Sub
End Module
' The example produces the following output to the console:
' 3 matches found in:
' The the quick brown fox fox jumps over the lazy dog dog.
' 'The' repeated at positions 0 and 4
' 'fox' repeated at positions 20 and 25
' 'dog' repeated at positions 50 and 54
'
' 2 matches found in:
' The the quick brown fox fox jumps over the lazy dog dog.
' 'fox' repeated at positions 20 and 25
' 'dog' repeated at positions 50 and 54
Hinweise
Ein RegexOptions Wert kann als Parameter für die folgenden Member der Regex Klasse bereitgestellt werden:
Der Regex.Regex(String, RegexOptions) Klassenkonstruktor.
Die Regex.Split(String, String, RegexOptions)-Methode.
Die Regex.IsMatch(String, String, RegexOptions)-Methode.
Die Regex.Match(String, String, RegexOptions)-Methode.
Die Regex.Matches(String, String, RegexOptions)-Methode.
Die Regex.Replace(String, String, String, RegexOptions) Und Regex.Replace(String, String, MatchEvaluator, RegexOptions) Methoden.
Ein RegexOptions Wert kann auch als Parameter für den RegexCompilationInfo Konstruktor bereitgestellt werden, oder er kann direkt der RegexCompilationInfo.Options Eigenschaft zugewiesen werden. Das resultierende RegexCompilationInfo Objekt wird dann im Aufruf der Regex.CompileToAssembly Methode verwendet.
Es können stattdessen mehrere Optionen bereitgestellt werden, die von Membern der RegexOptions Aufzählung (insbesondere durch seine ExplicitCapture, , IgnoreCaseMultiline, und Singleline Member) bereitgestellt werden, indem sie ein Inlineoptionszeichen im Muster für reguläre Ausdrücke verwenden. Ausführliche Informationen finden Sie unter "Optionen für reguläre Ausdrücke".