C# 文字列内のバックスラッシュ文字のエスケープ
C# で文字列を処理する場合、2 つのバックスラッシュ() を 1 つのバックスラッシュ() に置き換える必要がある状況に遭遇することがあります。これは、データベース接続文字列や正規表現など、さまざまな状況で必要となる場合があります。
次のシナリオを考えてみましょう。「ab」という名前の文字列があり、それをバックスラッシュを 1 つだけ含む文字列「ab」に変換する必要があります。最初は、単純な文字列置換操作で二重バックスラッシュを置換しようとするかもしれませんが、これは失敗する可能性があります。
これは、文字列「ab」には元の形式では実際にはバックスラッシュが 1 つしか含まれていないために発生します。一部のコンテキスト (デバッガーなど) では、コンパイラーはバックスラッシュ文字をエスケープして、「ab」として表示します。
文字列に 1 つまたは 2 つのバックスラッシュが含まれているかどうかを確認するには、次の操作を試してください:
<code class="language-csharp">Console.WriteLine(stringToBeReplaced);</code>
出力に 2 つのバックスラッシュが表示される場合、元の文字列には 2 つのバックスラッシュが含まれていませんが、ビューアによってエスケープされます。
二重のバックスラッシュを単一のバックスラッシュに置き換えるには、次のコードを使用できます:
<code class="language-csharp">text = text.Replace(@"\", @"\");</code>
ただし、文字列に既にバックスラッシュが 1 つだけ含まれている場合 (予想どおり)、この置換は必要ありません。
以上がC# 文字列内の二重バックスラッシュを単一のバックスラッシュに適切に置き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。