C#中的双引号字符串替换

时间:2012-02-22 11:25:53

标签: c#

如何在C#中替换以下字符串

电流:

"John K "GEN" Greg"

目标:

 "John K \"GEN\" Greg"

这是错误的,因为我没有正确地逃避它:

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

用\(斜杠)替换引号的语法是什么?

任何帮助都将不胜感激。

由于

6 个答案:

答案 0 :(得分:72)

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

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

在第一个示例中,"必须使用反斜杠进行转义,否则将结束字符串。同样,在替换字符串\\中需要通过转义转义字符来产生一个反斜杠。

在第二个示例中,使用了逐字字符串文字,它们被写为@"..."。在这些文字中,没有识别出转义序列,允许您以更清晰的方式编写包含大量反斜杠的字符串(例如正则表达式)。对于单个"",唯一有效的转义序列"

答案 1 :(得分:7)

你应该使用双反斜杠:

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

答案 2 :(得分:5)

要删除字符串中的所有引号,请尝试:

field.Value = Regex.Replace(field.Value,@“[\”“]”,“”,RegexOptions.None);

试图在互联网上找到这个答案真是太痛苦了!

答案 3 :(得分:0)

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

你逃脱了什么?如果您要将其插入数据库,请考虑使用prepared statements。如果您要在HTML输出中使用它,请考虑使用一些模板引擎代替您自己。

答案 4 :(得分:0)

尝试:var result = yourString.Replace("\"", "\\\"");

答案 5 :(得分:0)

string MailFrom ="aaa@my.web.pk;\"PROMMS\" ccc@my.web.pk;";

string NewMailFrom = Regex.Replace(MailFrom, "\"[^\"]*\"", string.Empty);


Results

aaa@my.web.pk;ccc@my.web.pk;