如何替换反斜杠字符的所有实例?

时间:2013-07-03 02:08:15

标签: c# mysql escaping

我正在尝试将用于richtextbox的值插入到mysql字段中。由于mysql不会直接处理\\\r,因此我希望将所有\替换为\\。我试过了:

mystring.Replace(@"\", @"\\");

但它不适用于\r\n等。我还能做到这一点吗?

修改 我的输入如下:

  

\ RTF1 \ ANSI \ ansicpg1252 \ deff0 \ r \ n

我的输出应该如下:

  

\\ RTF1 \\ ANSI \\ ansicpg1252 \\ deff0 \ r \ n

感谢。

2 个答案:

答案 0 :(得分:5)

尝试:

Regex.Escape(mystring);

请参阅:Escape special characters in MySQL using C# and ASP.Net

示例:

var data = "this is \n a \r\ntest";
var result = Regex.Escape(data); // this\ is\ \n\ a\ \r\ntest

//replace escaped spaces
Console.Write(result.Replace(@"\ ", " ")); // this is \n a \r\ntest

答案 1 :(得分:0)

这对我有用:

var mystring = @"\rtf1\ansi\ansicpg1252\deff0\r\n";
mystring = mystring.Replace(@"\", @"\\");

产量

\\rtf1\\ansi\\ansicpg1252\\deff0\\r\\n

我唯一能想到的是:

  • 是否已在mystring
  • 中取消了反斜杠的转义
  • 您是否正在使用.Replace()的结果,而不仅仅是保留mystring