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

58
如何在 C# 中替换以下字符串。
当前字符串为:
"John K "GEN" Greg"

目标:

 "John K \"GEN\" Greg"

我没有正确转义,所以这是错误的:

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

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

非常感谢您的帮助。

谢谢

6个回答

120
s = s.Replace("\"", "\\\"");
或者
s = s.Replace(@"""", @"\""");
在第一个例子中," 必须用反斜杠进行转义,否则它会结束字符串。 同样,在替换字符串中,需要使用 \\ 来通过转义字符来获得一个单独的反斜杠。
在第二个例子中,使用的是文本字符串字面量,它们被写成 @"..."。 在这些字符串中不识别转义序列,可以更加清晰地书写包含大量反斜杠的字符串(如正则表达式)。 唯一有效的转义序列是 "" 表示一个单独的 "

10

您应该使用双反斜杠:

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

8

要从字符串中删除所有引号,请尝试以下方法:

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

在互联网上找到这个答案真是太难了!

这段文字与IT技术无关,如有需要请提供更多信息。

由于某些原因,其他答案对我没有用,这个答案有效!谢谢! - Abhishek Poojary

2
将字符串中的双引号替换为转义字符“\”。“你为什么要对它进行转义呢?如果你要将其插入到数据库中,请考虑使用prepared statements。如果您要在HTML输出中使用它,请考虑使用一些模板引擎来自动处理。”

2
尝试使用以下代码:var result = yourString.Replace("\"", "\\\"");

1
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;

这并没有回答楼主的问题,但却是我所寻找的。 - MarkusParker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接