RegexOptions Enum

Definitie

Biedt geïnventariseerd waarden die moeten worden gebruikt om reguliere expressieopties in te stellen.

Deze opsomming ondersteunt een bitsgewijze combinatie van de waarden van de leden.

public enum class RegexOptions
[System.Flags]
public enum RegexOptions
[<System.Flags>]
type RegexOptions = 
Public Enum RegexOptions
Overname
RegexOptions
Kenmerken

Velden

Name Waarde Description
None 0

Hiermee geeft u op dat er geen opties zijn ingesteld. Zie de sectie Standaardopties in het artikel Opties voor reguliere expressies voor meer informatie over het standaardgedrag van de engine voor reguliere expressies.

IgnoreCase 1

Hiermee geeft u hoofdlettergevoelige overeenkomende waarden op. Zie de sectie 'Case-Insensitive Overeenkomende' in het artikel Opties voor reguliere expressies voor meer informatie.

Multiline 2

Modus met meerdere regels. Wijzigt de betekenis van ^ en $ zodat deze overeenkomen aan het begin en einde van respectievelijk een regel, en niet alleen het begin en einde van de gehele tekenreeks. Zie de sectie Multiline-modus in het artikel Opties voor reguliere expressies voor meer informatie.

ExplicitCapture 4

Hiermee geeft u op dat de enige geldige opnamen expliciet benoemde of genummerde groepen van het formulier zijn (?<naam>...). Hierdoor kunnen niet-benoemde haakjes fungeren als niet-inkapserende groepen zonder de syntactische onhandigheid van de expressie (?:...). Zie de sectie 'Alleen expliciete opnamen' in het artikel Opties voor reguliere expressies voor meer informatie.

Compiled 8

Hiermee geeft u op dat de reguliere expressie wordt gecompileerd naar MSIL-code, in plaats van te worden geïnterpreteerd. Gecompileerde reguliere expressies maximaliseren de runtimeprestaties ten koste van initialisatietijd. Deze waarde mag niet worden toegewezen aan de Options eigenschap bij het aanroepen van de CompileToAssembly(RegexCompilationInfo[], AssemblyName) methode. Zie de sectie Gecompileerde reguliere expressies in het artikel Reguliere expressieopties voor meer informatie.

Singleline 16

Hiermee geeft u de modus met één regel op. Hiermee wijzigt u de betekenis van de punt (.) zodat deze overeenkomt met elk teken (in plaats van elk teken behalve \n). Zie de sectie 'Modus met één regel' in het artikel Opties voor reguliere expressies voor meer informatie.

IgnorePatternWhitespace 32

Elimineert niet-gescaped witruimte uit het patroon en schakelt opmerkingen in die zijn gemarkeerd met #. Deze waarde heeft echter geen invloed op of elimineert witruimte in tekenklassen, numerieke kwantificatoren of tokens die het begin van afzonderlijke reguliere expressietaalelementen markeren. Zie de sectie Witruimte negeren in het artikel Opties voor reguliere expressies voor meer informatie.

RightToLeft 64

Hiermee geeft u op dat de zoekopdracht van rechts naar links komt in plaats van van van links naar rechts. Zie de sectie 'Modus van rechts naar links' in het artikel Opties voor reguliere expressies voor meer informatie.

ECMAScript 256

Hiermee schakelt u het gedrag van ECMAScript-compatibel in voor de expressie. Deze waarde kan alleen worden gebruikt in combinatie met de IgnoreCase, Multilineen Compiled waarden. Het gebruik van deze waarde met andere waarden resulteert in een uitzondering.

Zie de sectie ECMAScript Matching Behavior in het artikel Reguliere expressieopties voor meer informatie over de ECMAScript optie.

CultureInvariant 512

Hiermee geeft u op dat culturele verschillen in taal worden genegeerd. Zie de sectie 'Vergelijking met de invariantcultuur' in het artikel Opties voor reguliere expressies voor meer informatie.

Voorbeelden

In het volgende voorbeeld worden twee reguliere expressies gedefinieerd waarmee herhaalde woorden in tekst worden geïdentificeerd, maar die met verschillende RegexOptions waarden worden geïnstantieerd. De eerste reguliere expressie is niet hoofdlettergevoelig; case wordt genegeerd bij het bepalen of een woord identiek is aan het voorgaande woord. De tweede reguliere expressie is hoofdlettergevoelig; een woord moet overeenkomen met het hoofdlettergebruik van het voorgaande woord om als een duplicaat te worden beschouwd.

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

Opmerkingen

Een RegexOptions waarde kan worden opgegeven als een parameter voor de volgende leden van de Regex klasse:

Een RegexOptions waarde kan ook worden opgegeven als een parameter aan de RegexCompilationInfo constructor, of deze kan rechtstreeks aan de RegexCompilationInfo.Options eigenschap worden toegewezen. Het resulterende RegexCompilationInfo object wordt vervolgens gebruikt in de aanroep van de Regex.CompileToAssembly methode.

Verschillende opties van leden van de RegexOptions opsomming (met name door de ExplicitCapturebijbehorende , IgnoreCaseen MultilineSingleline leden) kunnen in plaats daarvan worden geboden met behulp van een inline-optieteken in het reguliere expressiepatroon. Zie Opties voor reguliere expressies voor meer informatie.

Van toepassing op

Zie ook