簡単そうですね。よくわかりません。
これが私が試しているコードです:
input = Regex.Replace(input, "\\", "\\\\\\");
ただし、エラーが発生します。
ArgumentException was unhandled-parsing "\"-Illegal\at end of pattern。
どうすればよいですか?
最初のものは"\\\\"
ではなく"\\"
である必要があります。それはこのように動作します:
"\\"
を書きました。\
に変換されます。正規表現を使用すると、「逐語的文字列」を使用する方がはるかに簡単です。この場合、逐語的文字列は@"\\"
になります。逐語的文字列を使用する場合、バックスラッシュは文字どおりに扱われるため、正規表現エンジンのエスケープを検討するだけで済みます。正規表現エンジンによって解釈されないため、2番目の文字列も@"\\"
になります。
1つのバックスラッシュを2つに置き換える場合は、文字列リテラルの形式として@"..."
を使用することで、正規表現での1レベルのエスケープを排除する方が明確な場合があります。逐語的文字列とも呼ばれます。すると、それがわかりやすくなります
string output = Regex.Replace(input, @"\\", @"\\");
\
から\\
への置き換えです。
var result = Regex.Replace(@"afd\tas\asfd\", @"\\", @"\\");
最初のパラメータは、正規表現では\である文字列\\です。
2番目のパラメーターは正規表現によって処理されないため、置換時にそのまま配置されます。
後で正規表現パターンで入力を使用する場合は、Regex.Encodeを使用することをお勧めします。
input = Regex.Escape(input);
手遅れになるのは遅すぎます。おそらく他の誰かがこれから恩恵を受けるでしょう。とにかくこれは私のために働きました:
text = text.Replace(@"\",@"\\");
そして、私はそれがさらに簡単だと思います。
乾杯!