RegexOptionsを指定しないデフォルトの状態では、正規表現エンジンは大文字小文字の違いを区別して扱いますが、RegexOptions.IgnoreCaseを指定すると大文字小文字の違いを無視するようになります。 これは、String.ContainsなどのメソッドでStringComparison.OrdinalIgnoreCaseを指定して大文字小文字の違いを無視した比較を行うようにすることに相当します。
次の例では、正規表現を用いて拡張子が.txt
のファイルだけを抽出して表示しています。 拡張子の大文字小文字の違いを無視するために、RegexOptions.IgnoreCaseを指定しています。
RegexOptions.IgnoreCaseを指定して大文字小文字を無視したパターンマッチングを行う
Imports System
Imports System.Text.RegularExpressions
Class Sample
Shared Sub Main()
Dim files() As String = New String() { _
"sample.txt", _
"Sample.Txt", _
"sample.txt.bak", _
"sample.cs", _
"test.txt", _
"TEST.TXT", _
"test.HTML" _
}
For Each file As String In files
' 拡張子が.txtのファイル名だけ表示する(大文字小文字の違いを無視する)
If Regex.IsMatch(file, "\.txt$", RegexOptions.IgnoreCase) Then
Console.WriteLine(file)
End If
Next
End Sub
End Class
実行結果
sample.txt Sample.Txt test.txt TEST.TXT