为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
互换的青春 2019-08-28 14:34:19
在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”?
查看完整描述

3 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

我怀疑你的字符串实际上只包含一个反斜杠,但是你在调试器中查看它,它会将它转换为一个在C#中作为常规字符串文字有效的形式。

如果在控制台或消息框中打印出来,是否显示两个反斜杠或一个?

如果你真的想用一个双反斜杠替换一个,我很容易这样做:

text = text.Replace(@"\\", @"\");

...但我的猜测是,原始版本不包含双反斜杠。如果这没有帮助,请提供更多详细信息。

编辑:在回答编辑过的问题时,你stringToBeReplaced只有一个反斜杠。真的。无论你在哪里看到两个反斜杠,那个观众都会逃避它。字符串本身没有两个反斜杠。检查stringToBeReplaced.Length并统计字符。


查看完整回答
反对 回复 2019-08-28
?
慕的地10843

TA贡献1785条经验 获得超8个赞

万一有人坚持这个,上面的答案都没有,下面是对我有用的。希望能帮助到你。


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 worked

var newString = Regex.Unescape(oldString);

// newString is now "\r|\n"


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 2995 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信