C#では通常の文字列リテラルのほかに、逐語的文字列リテラルで文字列リテラルを記述することができます。 @" "
のように文字列リテラルの二重引用符の前にアットマーク@
を前置することで逐語的文字列リテラルはとなり、逐語的文字列リテラル内では\n
や\\
などのエスケープシーケンスは無効化され、そのまま文字列化されます。
逐語的文字列リテラルを用いることにより、ファイルパスや正規表現などバックスラッシュ\
を多用する文字列を見やすく記述することができます。 逐語的文字列リテラル内ではエスケープシーケンスは無効化されるため、二重引用符を記述する場合は""
のように二つ重ねて記述します。
正規表現要素をエスケープした文字列で表現する、あるいはエスケープされている文字列から正規表現要素に変換するメソッドとして、Regex.Escape/Regex.Unescapeメソッドが用意されています。
PerlやJavaScript等の言語では/\d+/
や/\.txt$/
といった正規表現リテラルがサポートされていますが、C#およびVBでは正規表現リテラルは用意されておらず使用することはできません。 このような文字列をコード中に記述しても正規表現とは解釈されず、また正しくコンパイルされません。 正規表現を扱う方法については正規表現によるパターンマッチングと文字列操作を参照してください。