逃避复杂的字符串

时间:2013-11-03 14:58:41

标签: c# string escaping character

基本上,我不知道如何逃避这个:

"\"

通过以上所述,我的意思是三个角色。 这是我到目前为止所做的,但是没有编译。

t = FindAndReplace("\"SLASH\"", "@\\"\"\\");

换句话说。我的文字“SLASH”应该由“\”代替。

2 个答案:

答案 0 :(得分:3)

您需要将第一个引号转义为\",然后将斜杠转义为\\,然后再使用\"转义最终报价。整个事情然后用引号括起来,如下:

t = FindAndReplace("\"SLASH\"", "\"\\\"");

当您的字符串包含许多反斜杠标记并且您不想将它们全部转义时,@表示法很有用,例如路径名中:

string x = "C:\\Program Files\\Microsoft\\Some Folder\\";

在功能上等同于:

string x = @"C:\Program Files\Microsoft\Some Folder\";

使用@表示法允许通过将引号编写两次来编码引号,因此对原始问题的可能更具可读性的答案是:

t = FindAndReplace("\"SLASH\"", @"""\""");

答案 1 :(得分:0)

你的第二次尝试实际上被视为

"@\"\"\"

这是两个中间带有“\”的字符串。对于你的第一个问题,答案是:

"\"\\\""

如果这不是您的代码中的含义,请澄清您的问题。