C# c从“\\”替换为“\”字符

C# c从“\\”替换为“\”字符,c#,replace,backslash,C#,Replace,Backslash,我需要从这个角色转换过来 "\\\\192.168.2.11\\MKRPRTAL-2.11\\TechnicalDocuments\\TechnicalDocumentsCore\\1000020200-test5_ED_R1.pdf" 致: 我试过了 rawPath = response2.TechDocSeriBilgiGetirList[0].PhysicalPathCore.Replace(@"\\", @"\").Repla

我需要从这个角色转换过来

"\\\\192.168.2.11\\MKRPRTAL-2.11\\TechnicalDocuments\\TechnicalDocumentsCore\\1000020200-test5_ED_R1.pdf"
致:

我试过了

rawPath = response2.TechDocSeriBilgiGetirList[0].PhysicalPathCore.Replace(@"\\", @"\").Replace(@"/", @"\");
response2.TechDocSeribiligGetirList[0]。PhysicalPathCore等于

"\\\\192.168.2.11\\MKRPRTAL-2.11\\TechnicalDocuments\\TechnicalDocumentsCore\\1000020200-test5_ED_R1.pdf"

字符串操作是不可变的。因此,要检查值,需要在操作后检查rawPath,而不是执行这些操作的字符串,因为该字符串不会更改

检查此链接:


.

您应该考虑到\字符是用\\ 因为反斜杠是一个特殊字符。 例如\n表示换行符。就像你按下键盘上的回车键一样

请尝试运行以下代码:

System.Console.WriteLine("I am in first line\nAnd i am in the next line");
输出将是:

I am in first line
And i am in the next line
同样的情况也适用于\\。 试试这个:

System.Console.WriteLine("\\");
它将只输出一个反斜杠\

我猜您正在使用Visual Studio调试器查看变量的值。尝试使用System.Console.WriteLine方法打印它们。 它将显示变量的真实值


您还可以添加您发布的代码行的结果吗?

请尝试以下代码:

string strvar = @"\\\\192.168.2.11\\MKRPRTAL-2.11\\TechnicalDocuments\\TechnicalDocumentsCore\\1000020200-test5_ED_R1.pdf";        
string strrep = strvar.Replace(@"\\\\", @"").Replace(@"\\", @"\");
输出将是:

192.168.2.11\MKRPRTAL-2.11\TechnicalDocuments\TechnicalDocumentsCore\1000020200-test5_ED_R1.pdf

这回答了你的问题吗?您如何查看您的字符串?在Visual Studio中,字符串是用分隔字符显示的,因此\n是一个换行符,\t是一个制表符,反斜杠显示为\\,因此您可能会认为您的字符串是所需字符串的两倍,而实际上您没有。另请参见,我尝试过,但它不起作用。我的值是:\\\\192.168.2.11\\mkrptal-2.11/TechnicalDocuments/TechnicalDocumentsCore/10000200-test5\u ED\u R1.pdf,但我需要\\192.168.2.11\mkrptal-2.11\TechnicalDocuments\TechnicalDocumentsCore\10000200-test5\u ED\u R1.pdf
192.168.2.11\MKRPRTAL-2.11\TechnicalDocuments\TechnicalDocumentsCore\1000020200-test5_ED_R1.pdf