Compartir a través de


Realizar operaciones que no tienen en cuenta las referencias culturales en el espacio de nombres RegularExpressions

Actualización: noviembre 2007

Los métodos del espacio de nombres System.Text.RegularExpressions utilizan la propiedad Thread.CurrentCulture para realizar las operaciones especificadas sin distinguir entre mayúsculas y minúsculas. Como consecuencia, las operaciones que no tienen en cuenta las mayúsculas y las minúsculas en el espacio de nombres RegularExpressions, tienen en cuenta las referencias culturales de manera predeterminada. Por ejemplo, la clase Regex proporciona un constructor que permite inicializar una nueva instancia especificando el parámetro options. El parámetro options es un valor bit a bit o una combinación de valores de RegexOptions (Enumeración). La enumeración RegexOptions contiene un miembro IgnoreCase que especifica la coincidencia sin distinción entre mayúsculas y minúsculas. Cuando se pasa IgnoreCase como parte del parámetro options al constructor de Regex, la coincidencia tiene en cuenta las referencias culturales pero no las mayúsculas y minúsculas.

Para obtener un comportamiento que no tenga en cuenta las referencias culturales desde los métodos del espacio de nombres RegularExpressions, pase el miembro CultureInvariant de la enumeración RegexOptions como parte del parámetro options al constructor Regex. El siguiente ejemplo muestra cómo crear Regex de manera que no tenga en cuenta las referencias culturales ni las mayúsculas y minúsculas.

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

Este código produce el siguiente resultado, lo que comprueba que un Regex.IsMatch de las cadenas "i" e "I" que no tiene en cuenta las mayúsculas y minúsculas devuelve true para InvariantCulture.

The result of the match is: True

Vea también

Referencia

System.Text.RegularExpressions

Otros recursos

Realizar operaciones de cadenas que no distinguen entre referencias culturales

Elementos del lenguaje de expresiones regulares