我仍然不知道该怎么做。我看到了很多与此相关的帖子,但是没有一种解决方案适合我。
我有一个名为“ a \\ b”的字符串。我需要的结果是“ a \ b”。怎么做?
我有一个文本文件,该文件的数据库连接字符串指向名为-Server \ DbInstance的实例
我的目的是在文本文件中执行字符串替换-用另一个值(例如“ 10.11.12.13,1200”)替换“ Server \ DbInstance”。
所以我有:
stringToBeReplaced = @"Server\DbInstance"; newString = @"10.11.12.13, 1200";
这是问题开始的地方。我的stringToBeReplaced始终为“ Server \\ DbInstance”,当我在文本文件中搜索此字符串时,搜索失败,因为文本文件中没有字符串“ Server \\ DbInstance”;相反,它只有“ Server \ DbInstance”。那么如何将“ Server \\ DbInstance”更改为“ Server \ DbInstance”?
我怀疑您的字符串 实际上实际上 只包含一个反斜杠,但是您正在调试器中查看它,因此正在将其转义为可以在C#中用作常规字符串文字的形式。
如果在控制台或消息框中将其打印出来,它是否显示两个反斜杠或一个反斜杠?
如果您 确实 想用一个反斜杠替换一个双反斜杠,那么这样做很容易:
text = text.Replace(@"\\", @"\");
…但是我的猜测是原件无论如何都不包含双反斜杠。如果这样做没有帮助,请提供更多详细信息。
编辑:为响应已编辑的问题,您stringToBeReplaced只有一个反斜杠。确实。无论您在哪里看到两个反斜杠,该查看器都将其转义。字符串本身没有两个反斜杠。检查stringToBeReplaced.Length并计数字符。
stringToBeReplaced
stringToBeReplaced.Length