C#正则表达式转义和替换

时间:2019-03-09 22:25:43

标签: c# json regex replace

我有一个API,可以将文档发送到电子邮件。我正在使用允许我指定电子邮件消息的参数。它要求换行符为Json格式(\ n)。我正在使用正则表达式来转义文本框文本,如下所示。

string JsonMessage = string.Format("{0}\n{1}", System.Text.RegularExpressions.Regex.Escape(this.txtMailMessage.Text), System.Text.RegularExpressions.Regex.Escape(this.txtMailMessage.Text));
        JsonMessage = JsonMessage.Replace("\r", "");
        Console.WriteLine(JsonMessage);

以下是示例输出:5 \ r \ n5 \ r \ n5

如图所示,我正在尝试替换\ r以便在Json中实现“换行”。看起来像这样:5 \ n5 \ n5

我似乎无法理解的是,当我投射JsonMessage = JsonMessage.Replace("\r", "");时,它并不能代替\ r

2 个答案:

答案 0 :(得分:0)

您需要使用JsonMessage.Replace("\\r", "");
\\将被解释为单个反斜杠。

答案 1 :(得分:0)

与其不替换“ \ r”,不如尝试将“ \ r \ n”替换为“ \ n”,作为

        string mystring = "5\r\n5\r\n5";
        mystring = mystring.Replace("\r\n", "\n");

这将产生“ 5 \ n5 \ n5”