【问题标题】:Double quote string replace in C#C#中的双引号字符串替换
【发布时间】:2012-03-12 17:26:31
【问题描述】:

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

当前:

"John K "GEN" Greg"

目标:

 "John K \"GEN\" Greg"

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

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

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

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: c#


    【解决方案1】:
    s = s.Replace("\"", "\\\"");
    

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

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

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

    【讨论】:

      【解决方案2】:

      你应该使用双反斜杠:

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

        • 由于某种原因,其他答案对我不起作用,这确实有效!谢谢!
        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:
            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;
            

            【讨论】:

              猜你喜欢
              • 2017-08-21
              • 2023-04-07
              • 2011-07-08
              • 1970-01-01
              • 1970-01-01
              • 2023-03-23
              • 2011-12-07
              • 2011-07-18
              相关资源
              最近更新 更多