-2

単純に見える問題がありますが、私の人生では、それを達成する方法がわかりません。

ここに私の開始文字列があります:

Hello \"this is my string\"

これが私が望む結果です:

Hello "this is my string"

したがって、基本的には、\"単にに置き換える必要があり"ます。

単一のバックスラッシュが文字列の他の場所に存在する可能性があるため、すべての出現を削除したくありません。の出現を\に置き換えたいだけです。\""

4

4 に答える 4

3

文字列に実際に \" が含まれている場合:

var replaced = myString.Replace(@"\""", @"""")
于 2013-10-07T14:04:23.380 に答える
2

C# が引用符記号を文字列内に埋め込むために使用する構文上のトリックに混乱するかもしれません。検討:

string abc = "This is a "quote"";  // INVALID SYNTAX, compile will complain
string def = "This is a \"quote\""; // this is ok

この場合、\ 文字はエスケープ文字と呼ばれ、次の文字を無視して文字列に入れるようにコンパイラに指示します。結果の文字列には、実際には \ 文字が含まれていません。これを行う場合:

string ghi = "This is a \\\"quote\\\""; // this is ok

結果の文字列には \ と " が含まれます。これを置き換えたい場合は、次のようにします。

string newghi = ghi.Replace("\\\"", "\"");

これにより、出現するすべての \" が " に置き換えられます

于 2013-10-07T14:10:35.147 に答える
0

エスケープ文字にアレルギーがある場合 (つまり、楽しみのために、エスケープ文字を使用せずに記述します。たとえば、通常の文字列でも、逐語的な文字列でも for ではありません) \\:\"""

myString.Replace(@"\"+'"', '"'.ToString())

C# デバッガーは"として表示される\"ため、文字列には実際には"s だけが含まれている可能性があることに注意してください。たとえば、デバッガーでは、文字列の値としてではなくstring helloWorld = "Hello \"World\"";、コードと同じように表示されます。"Hello \"World\""Hello "World"

于 2013-10-07T14:08:13.847 に答える
-1

これを試してyourString.Replace("\\\"", "");

于 2013-10-07T14:06:04.600 に答える