Freigeben über


RegexOptions Enumeration

Definition

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
RegexOptions
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:

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".

Gilt für:

Weitere Informationen