2012-02-22 160 views
19

如何更換在C#以下字符串雙引號字符串替換在C#

電流:

"John K "GEN" Greg" 

目標:

"John K \"GEN\" Greg" 

這是錯誤的,因爲我不是逃避它正確:

s = s.Replace(""","\""); 

什麼是用\(斜線)替換引號的語法?

任何幫助,將不勝感激。

由於

回答

56
s = s.Replace("\"", "\\\""); 

s = s.Replace(@"""", @"\"""); 

在第一個例子的"必須與反斜槓轉義,因爲它會否則結束字符串。同樣,替換字符串\\需要通過轉義轉義字符來產生單個反斜槓。

在第二個例子中使用了逐字字符串文字,它們被寫爲@"..."。在這些文字中,不會識別轉義序列,從而允許您以更簡潔的方式(例如正則表達式)編寫包含大量反斜槓的字符串。在那裏工作的唯一轉義序列是"",單個"

6

您應該使用雙反斜線:

s = s.Replace("\"", "\\\""); 
0

s = s.Replace("\"","\\\"");

什麼是你逃了?如果您要將其插入數據庫,請考慮使用prepared statements。如果您打算在HTML輸出中使用它,請考慮使用一些模板引擎來替代您自己。

0

嘗試:var result = yourString.Replace("\"", "\\\"");

4

要刪除字符串中的所有報價,請嘗試:

field.Value = Regex.Replace(field.Value,@ 「[\」 「]」, 「」,RegexOptions 。沒有);

試圖在互聯網上找到這個答案是一種痛苦!

+0

由於某種原因,其他答案不適用於我,這樣做!謝謝! – 2017-10-15 10:05:59