猿问

在C#中的字符串中将“\\”替换为“\”

在C#中的字符串中将“\\”替换为“\”

我仍然没有得到如何做到这一点。我看到很多关于此的帖子,但没有一个解决方案适合我。

我有一个名为“a \\ b”的字符串。我需要的结果是“a \ b”。这是怎么做到的?

我有一个文本文件,其中有一个数据库连接字符串,指向一个名为Server \ DbInstance的实例

我的目标是在文本文件中执行字符串替换 - 将“Server \ DbInstance”替换为另一个值,例如“10.11.12.13,1200”。

所以我有:

stringToBeReplaced = @"Server\DbInstance";newString = @"10.11.12.13, 1200";

这是问题开始的地方。我的stringToBeReplaced将永远是“Server \\ DbInstance”,当我在我的文本文件中搜索此字符串时,搜索失败,因为文本文件没有字符串“Server \\ DbInstance”; 相反,它只有“Server \ DbInstance”。那么如何将“Server \\ DbInstance”更改为“Server \ DbInstance”?


互换的青春
浏览 3002回答 3
3回答

ibeautiful

我怀疑你的字符串实际上只包含一个反斜杠,但是你在调试器中查看它,它会将它转换为一个在C#中作为常规字符串文字有效的形式。如果在控制台或消息框中打印出来,是否显示两个反斜杠或一个?如果你真的想用一个双反斜杠替换一个,我很容易这样做:text = text.Replace(@"\\", @"\");...但我的猜测是,原始版本不包含双反斜杠。如果这没有帮助,请提供更多详细信息。编辑:在回答编辑过的问题时,你stringToBeReplaced只有一个反斜杠。真的。无论你在哪里看到两个反斜杠,那个观众都会逃避它。字符串本身没有两个反斜杠。检查stringToBeReplaced.Length并统计字符。

慕的地10843

万一有人坚持这个,上面的答案都没有,下面是对我有用的。希望能帮助到你。var oldString = "\\r|\\n";// None of these worked for me// var newString = oldString(@"\\", @"\");// var newString = oldString.Replace("\\\\", "\\");// var newString = oldString.Replace("\\u5b89", "\u5b89");// var newString = Regex.Replace(oldString , @"\\", @"\");// This is what workedvar newString = Regex.Unescape(oldString);// newString is now "\r|\n"
随时随地看视频慕课网APP
我要回答