Durchführen kulturunabhängiger Operationen im RegularExpressions-Namespace
Aktualisiert: November 2007
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