Partager via


Exécution d'opérations indépendantes de la culture dans l'espace de noms RegularExpressions

Mise à jour : novembre 2007

Les méthodes de l'espace de noms System.Text.RegularExpressions utilisent la propriété Thread.CurrentCulture pour effectuer des opérations que vous désignez comme ne respectant pas la casse. Par conséquent, les opérations qui ne respectent pas la casse dans l'espace de noms RegularExpressions sont dépendantes de la culture par défaut. Par exemple, la classe Regex fournit un constructeur qui vous permet d'initialiser une nouvelle instance spécifiant un paramètre options. Le paramètre options est une combinaison d'opérations de bits OR des valeurs de l'énumération RegexOptions. L'énumération RegexOptions contient un membre IgnoreCase qui spécifie une correspondance ne respectant pas la casse. Lorsque vous passez IgnoreCase comme élément du paramètre options au constructeur Regex, la correspondance ne respecte pas la casse et est dépendante de la culture.

Pour que les méthodes de l'espace de noms RegularExpressions présentent un comportement indépendant de la culture, passez le membre CultureInvariant de l'énumération RegexOptions comme élément du paramètre options au constructeur Regex. L'exemple suivant montre comment créer un Regex qui ne respecte pas la casse et qui est indépendant de la culture.

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); 
   }
}

Ce code génère la sortie suivante, qui vérifie qu'un Regex.IsMatch des chaînes "i" et "I" ne respectant pas la casse retourne la valeur true pour InvariantCulture.

The result of the match is: True

Voir aussi

Référence

System.Text.RegularExpressions

Autres ressources

Exécution d'opérations de chaînes indépendantes de la culture

Éléments du langage des expressions régulières