Regex.Escapeメソッドを使うと、正規表現要素をエスケープした文字列を取得することができます。 コード中に静的に正規表現を記述する場合は事前にエスケープ済みの状態で記述することができますが、例えばユーザー入力による検索文字列の指定など、実行時にエスケープする必要が生じるような場合にはこのメソッドを用いることができます。
Regex.Escapeメソッドで文字列中の正規表現要素をエスケープする
Imports System
Imports System.Text.RegularExpressions
Class Sample
Shared Sub Main()
' 文字列中の記号のうち正規表現要素として使われるものをエスケープする
Dim str As String = "().*[]!#%$"
Console.WriteLine(str)
Console.WriteLine(Regex.Escape(str))
End Sub
End Class
実行結果
().*[]!#%$ \(\)\.\*\[]!\#%\$
このメソッドでは、置換の正規表現要素を表す$
をエスケープしても$$
とはならず、\$
とエスケープされるようです。