Double quote string replace in C#

后端 未结 6 612
野性不改
野性不改 2020-12-05 09:15

How to replace the below string in C#

Current:

\"John K \"GEN\" Greg\"

The Goal:

 \"John K \\\"GEN\\\" Greg\"


        
相关标签:
6条回答
  • 2020-12-05 09:53
    s = s.Replace("\"", "\\\"");
    

    or

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

    In the first example the " has to be escaped with a backslash as it would otherwise end the string. Likewise, in the replacement string \\ is needed to yield a single backslash by escaping the escape character.

    In the second example verbatim string literals are used, they are written as @"...". In those literals no escape sequences are recognized, allowing you to write strings that contain lots of backslashes in a much cleaner way (such as regular expressions). The only escape sequence that works there is "" for a single ".

    0 讨论(0)
  • 2020-12-05 09:53

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

    What are you escaping it for? If you're going to insert it into DB, consider using prepared statements instead. If you're going to use it in your HTML output, consider using some template engine that does it for yourself instead.

    0 讨论(0)
  • 2020-12-05 10:04

    You should use a double backslash:

    s = s.Replace("\"", "\\\"");
    
    0 讨论(0)
  • 2020-12-05 10:09

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

    0 讨论(0)
  • 2020-12-05 10:13

    To remove ALL quotes from a string, try:

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

    What a pain trying to find this answer on the internet!

    0 讨论(0)
  • 2020-12-05 10:13
    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;
    
    0 讨论(0)
提交回复
热议问题