2012-02-22 179 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