3

我试图将双反斜杠替换为简单的反斜杠,但它不起作用。这是一张图片:

在此处输入图像描述

我还在想为什么。我看到了这样的帖子它对他们有用。建议?

更新

对不起,我犯了一个错误,它的一个反斜杠只是我拼写错误 要替换的代码是

string clear_patch = path.Replace(@"\\","\");
4

5 回答 5

10

这是工作。\\在调试期间检查时不会转义。尝试将值打印到控制台窗口或网页。

编辑*您似乎很困惑。

您的路径实际上不包含任何双斜杠\\,它只是看起来那样,因为在调试期间查看字符串时单斜杠被转义了。考虑阅读转义序列

如果您想转义斜杠,则不要在替换中使用逐字字符串文字,例如string.Replace("\\", "-"),它将用连字符替换路径中的所有单斜杠,-尽管我不确定您为什么要这样做?请注意,在调试期间进行检查时,这仍会将路径显示为带有\\斜杠。打印到控制台窗口将显示:

C:-dev-vsprojects-VerificaionDeFirmas-VerificaionDeFirmas-verificaciondefirmas.txt

于 2013-04-04T14:02:45.727 回答
3

监视窗口向您显示转义的字符串。所以当它显示\\字符串只包含\.

您的替换正在尝试替换\\,因为您使用的是文字指示符@

将替换代码更改为:

string clear_path = path.Replace("\\", "-");
于 2013-04-04T14:05:01.037 回答
1

使用"\\", 而不是@"\\"因为这会寻找 2 个\字符。

请注意,可视化工具始终显示实际字符的\\符号。\

于 2013-04-04T14:02:56.740 回答
1

这就是你想要做的:

string clear_path = path.Replace(@"\","-");

调试器中的表示显示\\,但这意味着转义字符和\

于 2013-04-04T14:03:05.240 回答
0

你不应该双重逃避它,要么你这样做:

string clear_path = path.Replace("\\","-")

或者

string clear_path = path.Replace(@"\","-")
于 2013-04-04T14:03:46.937 回答