Replace \\ with \ in C#

后端 未结 4 2182
说谎
说谎 2020-12-18 16:13

I have a long string (a path) with double backslashes, and I want to replace it with single backslashes:

string a = \"a\\\\b\\\\c\\\\d\";
string b = a.Rep         


        
4条回答
  •  没有蜡笔的小新
    2020-12-18 16:37

    In C#, you can't have a string like "a\b\c\d", because the \ has a special meaning: it creates a escape sequence together with a following letter (or combination of digits).

    \b represents actually a backspace, and \c and \d are invalid escape sequences (the compiler will complain about an "Unrecognized escape sequence").

    So how do you create a string with a simple \? You have to use a backslash to espace the backslash:\\ (it's the espace sequence that represents a single backslash).

    That means that the string "a\\b\\c\\d" actually represents a\b\c\d (it doesn't represent a\\b\\c\\d, so no double backslashes). You'll see it yourself if you try to print this string.

    C# also has a feature called verbatim string literals (strings that start with @), which allows you to write @"a\b\c\d" instead of "a\\b\\c\\d".

提交回复
热议问题