Durchführen kulturunabhängiger Operationen im RegularExpressions-Namespace

Die Methoden im System.Text.RegularExpressions-Namespace verwenden die Thread.CurrentCulture-Eigenschaft zum Durchführen von Operationen, bei denen die Groß-/Kleinschreibung nicht beachtet wird. Folglich handelt es sich bei den Operationen im RegularExpressions-Namespace, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird, um standardmäßig kulturabhängige Operationen. Die Regex-Klasse stellt z. B. einen Konstruktor bereit, mit dem Sie eine neue Instanz unter Angabe eines Options-Parameters initialisieren können. Der Options-Parameter ist eine bitweise OR-Kombination aus Werten der RegexOptions-Enumeration. Die RegexOptions-Enumeration enthält einen IgnoreCase-Member, der angibt, dass ohne Berücksichtigung der Groß-/Kleinschreibung nach Übereinstimmungen gesucht wird. Wenn Sie IgnoreCase als Teil des Options-Parameters an den Regex-Konstruktor übergeben, erfolgt die Suche nach Übereinstimmungen kulturabhängig und ohne Beachtung der Groß-/Kleinschreibung.

Um ein kulturunabhängiges Verhalten aus den Methoden im RegularExpressions-Namespace zu erhalten, übergeben Sie den CultureInvariant-Member der RegexOptions-Enumeration als Teil des Options-Parameters an den Regex-Konstruktor. Im folgenden Beispiel wird das Erstellen eines Regex-Konstruktors veranschaulicht, der die Groß-/Kleinschreibung nicht berücksichtigt und kulturunabhängig ist.

Imports System
Imports System.Globalization
Imports System.Text.RegularExpressions

Public Class CultureChange
    Public Shared Sub Main()
      ' Perform a case-insensitive, culture-insensitive
      ' Regex operation.
      Dim TestString As String = "i"
      Dim r As New Regex("I", RegexOptions.IgnoreCase Or _
                   RegexOptions.CultureInvariant)
      Dim result As Boolean = r.IsMatch(TestString)
      Console.WriteLine("The result of the comparison is: {0}", result)
   End Sub
End Class
using System;
using System.Globalization;
using System.Text.RegularExpressions;

public class CultureChange
{
   public static void Main() 
   {
      // Perform the case-insensitive, culture-insensitive 
      // Regex operation.
      String TestString = "i";
      Regex r = new Regex("I", RegexOptions.IgnoreCase | 
                RegexOptions.CultureInvariant);
      bool result = r.IsMatch(TestString);
      Console.WriteLine("The result of the comparison is: {0}",
                         result); 
   }
}

Dieser Code liefert die folgende Ausgabe, mit der sichergestellt wird, dass ein Regex.IsMatch ohne Berücksichtigung der Groß-/Kleinschreibung für die Zeichenfolgen "i" und "I" bei InvariantCulture den Wert true zurückgibt.

The result of the match is: True

Siehe auch

Referenz

System.Text.RegularExpressions Namespace

Weitere Ressourcen

Durchführen kulturunabhängiger Zeichenfolgenoperationen
Sprachelemente für reguläre Ausdrücke