C#string - 创建一个未转义的反斜杠

时间:2012-01-18 19:07:14

标签: c# .net string escaping

我使用.NET(C#)代码写入与Perl应用程序接口的数据库。当单引号出现在字符串中时,我需要“逃避”它。 IOW,名称O'Bannon应转换为O\'Bannon以获取数据库UPDATE。但是,字符串操作的所有努力(例如.Replace)都会为反斜杠生成一个转义字符,最后我会使用O\\'Bannon

我知道它实际上是生成第二个反斜杠,因为我可以读取结果数据库字段的值(即它不仅仅是字符串的IDE调试值)。

如何才能在输出字符串中只获得单个反斜杠?

[R

4 个答案:

答案 0 :(得分:5)

我做到了

"O'Bannon".Replace("'","\\'")

,结果是

"O\'Bannon"

这是你想要的吗?

答案 1 :(得分:2)

您可以使用"\\",这是一个转义字符后跟一个反斜杠。

请在此处查看转义序列列表:http://msdn.microsoft.com/en-us/library/h21280bw.aspx

答案 2 :(得分:1)

甚至可以更好地为替换分配一个var,以便您可以在需要时进行检查

var RepName = "O'Bannon";
var Repstr = RepName.Replace("'","\\'");

答案 3 :(得分:1)

您也可以使用逐字字符串

s = s.Replace("'", @"\'");