如何在c#中替换字符串中的换行符?


当前回答

为什么不是两者都有呢?

string ReplacementString = "";

Regex.Replace(strin.Replace(System.Environment.NewLine, ReplacementString), @"(\r\n?|\n)", ReplacementString);

注意:用输入字符串的名称替换string。

其他回答

我需要将\r\n替换为实际的回车和换行,并将\t替换为实际的制表符。所以我想到了以下几点:

public string Transform(string data)
{
    string result = data;
    char cr = (char)13;
    char lf = (char)10;
    char tab = (char)9;

    result = result.Replace("\\r", cr.ToString());
    result = result.Replace("\\n", lf.ToString());
    result = result.Replace("\\t", tab.ToString());

    return result;
}
var answer = Regex.Replace(value, "(\n|\r)+", replacementString);

安全替换换行符的最好方法是

yourString.Replace("\r\n","\n") //handling windows linebreaks
.Replace("\r","\n")             //handling mac linebreaks

这将产生一个只有\n(如换行)作为换行符的字符串。 这段代码对于修复混合换行也很有用。

string s = Regex.Replace(source_string, "\n", "\r\n");

or

string s = Regex.Replace(source_string, "\r\n", "\n");

这取决于你想走哪条路。

希望能有所帮助。

为了确保所有可能的换行方式(Windows, Mac和Unix)都被替换,您应该使用:

string.Replace("\r\n", "\n").Replace('\r', '\n').Replace('\n', 'replacement');

按照这个顺序,当你发现一些行尾字符的组合时,不要使用额外的换行符。