我使用.NET(C#)代码写入与Perl应用程序接口的数据库。当单引号出现在字符串中时,我需要“逃避”它。 IOW,名称O'Bannon
应转换为O\'Bannon
以获取数据库UPDATE。但是,字符串操作的所有努力(例如.Replace)都会为反斜杠生成一个转义字符,最后我会使用O\\'Bannon
。
我知道它实际上是生成第二个反斜杠,因为我可以读取结果数据库字段的值(即它不仅仅是字符串的IDE调试值)。
如何才能在输出字符串中只获得单个反斜杠?
[R
答案 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("'", @"\'");