RegularExpressions 名前空間でのカルチャを認識しない操作の実行
更新 : 2007 年 11 月
System.Text.RegularExpressions 名前空間のメソッドは Thread.CurrentCulture プロパティを使用して、大文字と小文字を区別しないように指定した操作を実行します。このため、RegularExpressions 名前空間での大文字と小文字を区別しない操作は、既定ではカルチャを認識します。たとえば、Regex クラスには、options パラメータを指定して新しいインスタンスを初期化できるコンストラクタが用意されています。options パラメータは、RegexOptions 列挙値のビットごとの OR の組み合わせです。RegexOptions 列挙体には、大文字と小文字を区別しない一致を指定する IgnoreCase メンバが含まれています。IgnoreCase を Regex のコンストラクタの options パラメータに渡すと、一致では大文字と小文字を区別せず、カルチャに依存します。
RegularExpressions 名前空間のメソッドからカルチャに依存しない動作を取得するには、RegexOptions 列挙体の CultureInvariant メンバを Regex コンストラクタの options パラメータの一部として渡します。大文字と小文字を区別せず、カルチャを認識しない 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);
}
}
このコードによって、次のような出力が生成されます。これによって、文字列 "i" と "I" についての大文字と小文字を区別しない Regex.IsMatch が、InvariantCulture の場合は true を返すことが確認できます。
The result of the match is: True
参照
参照
System.Text.RegularExpressions