RegexOptions Enum

Definition

Innehåller uppräknade värden som ska användas för att ange alternativ för reguljära uttryck.

Den här uppräkningen stöder en bitvis kombination av dess medlemsvärden.

public enum class RegexOptions
[System.Flags]
public enum RegexOptions
[<System.Flags>]
type RegexOptions = 
Public Enum RegexOptions
Arv
RegexOptions
Attribut

Fält

Name Värde Description
None 0

Anger att inga alternativ har angetts. Mer information om standardbeteendet för motorn för reguljära uttryck finns i avsnittet "Standardalternativ" i artikeln Alternativ för reguljära uttryck .

IgnoreCase 1

Anger skiftlägesokänslig matchning. Mer information finns i avsnittet "Case-Insensitive Matchning" i artikeln Alternativ för reguljära uttryck .

Multiline 2

Flerradsläge. Ändrar innebörden av ^ och $ så att de matchar i början respektive slutet av alla rader, och inte bara början och slutet av hela strängen. Mer information finns i avsnittet "Flerradsläge" i artikeln Alternativ för reguljära uttryck .

ExplicitCapture 4

Anger att de enda giltiga avbildningarna uttryckligen namnges eller numreras grupper i formuläret (?<namn>...). Detta gör att namnlösa parenteser kan fungera som icke-kapslade grupper utan den syntaktiska klumpigheten i uttrycket (?:...). Mer information finns i avsnittet "Endast explicita avbildningar" i artikeln Alternativ för reguljära uttryck .

Compiled 8

Anger att det reguljära uttrycket kompileras till MSIL-kod i stället för att tolkas. Kompilerade reguljära uttryck maximerar körningsprestanda på bekostnad av initieringstiden. Det här värdet ska inte tilldelas egenskapen Options när metoden anropas CompileToAssembly(RegexCompilationInfo[], AssemblyName) . Mer information finns i avsnittet "Kompilerade reguljära uttryck" i artikeln Alternativ för reguljära uttryck .

Singleline 16

Anger enkelradsläge. Ändrar innebörden av punkten (.) så att den matchar varje tecken (i stället för varje tecken utom \n). Mer information finns i avsnittet "Enkelradsläge" i artikeln Alternativ för reguljära uttryck .

IgnorePatternWhitespace 32

Eliminerar ej inkapslade blanksteg från mönstret och aktiverar kommentarer markerade med #. Det här värdet påverkar dock inte eller eliminerar blanksteg i teckenklasser, numeriska kvantifierare eller token som markerar början på enskilda språkelement för reguljära uttryck. Mer information finns i avsnittet Ignorera tomt utrymme i artikeln Alternativ för reguljära uttryck .

RightToLeft 64

Anger att sökningen kommer från höger till vänster i stället för från vänster till höger. Mer information finns i avsnittet "Höger till vänster-läge" i artikeln Alternativ för reguljära uttryck .

ECMAScript 256

Aktiverar ECMAScript-kompatibelt beteende för uttrycket. Det här värdet kan endast användas tillsammans med IgnoreCasevärdena , Multilineoch Compiled . Användningen av det här värdet med andra värden resulterar i ett undantag.

Mer information om alternativet finns i ECMAScript avsnittet "ECMAScript Matching Behavior" i artikeln Alternativ för reguljära uttryck .

CultureInvariant 512

Anger att kulturella skillnader i språk ignoreras. Mer information finns i avsnittet "Jämförelse med invariant kultur" i artikeln Alternativ för reguljära uttryck .

Exempel

I följande exempel definieras två reguljära uttryck som identifierar upprepade ord i text men som instansieras med olika RegexOptions värden. Det första reguljära uttrycket är skiftlägesokänsligt. -fallet ignoreras när du avgör om ett ord är identiskt med föregående ord. Det andra reguljära uttrycket är skiftlägeskänsligt. ett ord måste matcha fallet med föregående ord exakt för att betraktas som en dubblett.

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

Kommentarer

Ett RegexOptions värde kan anges som en parameter till följande medlemmar i Regex klassen:

Ett RegexOptions värde kan också anges som en parameter till RegexCompilationInfo konstruktorn eller tilldelas direkt till RegexCompilationInfo.Options egenskapen. Det resulterande RegexCompilationInfo objektet används sedan i anropet till Regex.CompileToAssembly metoden.

Flera alternativ som tillhandahålls av RegexOptions medlemmar i uppräkningen (i synnerhet av dess ExplicitCapture, IgnoreCase, Multilineoch Singleline medlemmar) kan i stället tillhandahållas med hjälp av ett infogat alternativtecken i mönstret för reguljära uttryck. Mer information finns i Alternativ för reguljära uttryck.

Gäller för

Se även