Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
RegexOptions-Enumeration
Stellt Enumerationswerte bereit, mit deren Hilfe Optionen für reguläre Ausdrücke festgelegt werden können.
Diese Enumeration verfügt über ein FlagsAttribute-Attribut, das die bitweise Kombination der Memberwerte zulässt.
Namespace: System.Text.RegularExpressionsAssembly: System (in System.dll)
| Membername | Beschreibung | |
|---|---|---|
|
None | Gibt an, dass keine Optionen festgelegt wurden. |
|
IgnoreCase | Gibt an, dass bei Übereinstimmungen die Groß- und Kleinschreibung berücksichtigt werden soll. |
|
Multiline | Mehrzeilenmodus. Ändert die Bedeutung von ^ und $, sodass sie jeweils dem Anfang und Ende einer beliebigen Zeile und nicht nur dem Anfang und Ende der gesamten Zeichenfolge entsprechen. |
|
ExplicitCapture | Gibt an, dass die einzigen gültigen Aufzeichnungen ausdrücklich benannt oder nummerierte Gruppen in der Form (?<name>...) sind. Dadurch können unbenannte Klammern wie Nicht-Erfassungsgruppen eingesetzt werden, ohne die komplexe Syntax des Ausdrucks (?:...) zu verwenden. |
|
Compiled | Gibt an, dass der reguläre Ausdruck in eine Assembly kompiliert wird. Dies beschleunigt zwar die Ausführung, verlängert jedoch die Ladezeit. Dieser Wert sollte der Options-Eigenschaft nicht zugewiesen werden, wenn die CompileToAssembly-Methode aufgerufen wird. |
|
Singleline | Gibt den Einzeilenmodus an. Ändert die Bedeutung des Punkts (.), sodass dieser jedem Zeichen entspricht (und nicht jedem Zeichen mit Ausnahme von \n). |
|
IgnorePatternWhitespace | Entfernt Leerraum ohne Escapezeichen aus dem Muster und aktiviert die mit # markierten Kommentare. Der IgnorePatternWhitespace-Wert beeinflusst oder entfernt jedoch keinen Leerraum in Zeichenklassen. |
|
RightToLeft | Gibt an, dass die Suche von rechts nach links und nicht von links nach rechts durchgeführt wird. |
|
ECMAScript | Aktiviert ECMAScript-kompatibles Verhalten für den Ausdruck. Dieser Wert kann nur in Verbindung mit den Werten IgnoreCase, Multiline und Compiled verwendet werden. Bei Verwendung dieses Werts mit allen anderen Werten wird eine Ausnahme ausgelöst. |
|
CultureInvariant | Gibt an, dass Unterschiede der Kultur bei der Sprache ignoriert werden. Weitere Informationen finden Sie unter Durchführen kulturunabhängiger Operationen im RegularExpressions-Namespace. |
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)-Methode und die Regex.Replace(String, String, MatchEvaluator, RegexOptions)-Methode.
Ein RegexOptions-Wert kann auch als Parameter für den RegexCompilationInfo-Konstruktor angegeben oder direkt der Options-Eigenschaft zugewiesen werden. Das resultierende RegexCompilationInfo-Objekt wird dann im Aufruf der CompileToAssembly-Methode verwendet.
Eine Reihe von Optionen, die von Membern der RegexOptions-Enumeration bereitgestellt werden (insbesondere von den Membern RegexOptions.ExplicitCapture, RegexOptions.IgnoreCase, RegexOptions.Multiline und RegexOptions.Singleline) können stattdessen durch Verwenden eines Zeichens für die Inlineoption im Muster des regulären Ausdrucks bereitgestellt werden. Weitere Informationen finden Sie unter Optionen für reguläre Ausdrücke.
Im folgenden Beispiel werden zwei reguläre Ausdrücke definiert, die wiederholt auftauchende Wörter in Texten identifizieren, aber mit unterschiedlichen RegexOptions-Werten instanziiert werden. Beim ersten regulären Ausdruck wird die Groß- und Kleinschreibung ignoriert, wenn bestimmt wird, ob ein Wort mit dem vorangegangen Wort identisch ist. Beim zweiten regulären Ausdruck wird die Groß- und Kleinschreibung berücksichtigt, d. h., damit ein Wort als Duplikat erkannt wird, muss es in der Groß- und Kleinschreibung exakt mit dem vorangegangenen Wort übereinstimmen.
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 jumped 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 jumped 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 jumped over the lazy dog dog. // 'fox' repeated at positions 20 and 25 // 'dog' repeated at positions 50 and 54
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.