Выполнение операций без учета языка и региональных параметров в пространстве имен RegularExpressions
Обновлен: Ноябрь 2007
Методы в пространстве имен System.Text.RegularExpressions используют свойство Thread.CurrentCulture для выполнения операций, определенных пользователем как выполняемые без учета регистра. В результате операции в пространстве имен RegularExpressions, не учитывающие регистр, по умолчанию будут выполняться с учетом языка и региональных параметров. Например, класс Regex предоставляет конструктор, который позволяет инициализировать новый экземпляр класса, определив параметр options. Параметр options — это побитовое логическое объединение значений перечисления RegexOptions. Перечисление RegexOptions содержит член IgnoreCase, который определяет сопоставление без учета регистра. Когда IgnoreCase передается как часть параметра options в конструктор Regex, при сопоставлении не учитывается регистр, но учитывается язык и региональные параметры.
Чтобы в методах из пространства имен RegularExpressions не учитывались язык и региональные параметры, необходимо передавать член CultureInvariant перечисления RegexOptions как часть параметра options в конструктор Regex. В следующем примере показано, как создать экземпляр класса Regex, не учитывающий регистр, а также язык и региональные параметры.
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);
}
}
Этот код позволит удостовериться, что функция Regex.IsMatch, выполняемая без учета регистра для строк "i" и "I", вернет для свойства InvariantCulture значение true. Выходные данные кода:
The result of the match is: True
См. также
Ссылки
System.Text.RegularExpressions
Другие ресурсы
Выполнение строковых операций, не зависящих от языка и региональных параметров