RegexOptionsを指定しないデフォルトの状態では、正規表現エンジンは大文字小文字の違いを区別して扱いますが、RegexOptions.IgnoreCaseを指定すると大文字小文字の違いを無視するようになります。 これは、String.ContainsなどのメソッドでStringComparison.OrdinalIgnoreCaseを指定して大文字小文字の違いを無視した比較を行うようにすることに相当します。
次の例では、正規表現を用いて拡張子が.txt
のファイルだけを抽出して表示しています。 拡張子の大文字小文字の違いを無視するために、RegexOptions.IgnoreCaseを指定しています。
RegexOptions.IgnoreCaseを指定して大文字小文字を無視したパターンマッチングを行う
using System;
using System.Text.RegularExpressions;
class Sample {
static void Main()
{
var files = new string[] {
"sample.txt",
"Sample.Txt",
"sample.txt.bak",
"sample.cs",
"test.txt",
"TEST.TXT",
"test.HTML",
};
foreach (var file in files) {
// 拡張子が.txtのファイル名だけ表示する(大文字小文字の違いを無視する)
if (Regex.IsMatch(file, @"\.txt$", RegexOptions.IgnoreCase))
Console.WriteLine(file);
}
}
}
実行結果
sample.txt Sample.Txt test.txt TEST.TXT