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


当前回答

为什么不是两者都有呢?

string ReplacementString = "";

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

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

其他回答

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

or

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

这取决于你想走哪条路。

希望能有所帮助。

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

基于@mark-bayers的答案和更清晰的输出:

string result = Regex.Replace(ex.Message, @"(\r\n?|\r?\n)+", "replacement text");

它删除了\r\n, \n和\r,而偏爱较长的一个,并将多次出现简化为一次。

到目前为止发布的解决方案要么只替代Environment。如果替换字符串包含换行符,则会失败,因为它们调用string。多次替换。

下面是一个解决方案,它使用正则表达式在一次字符串传递中完成所有三个替换。这意味着替换字符串可以安全地包含换行符。

string result = Regex.Replace(input, @"\r\n?|\n", replacementString);

将replace替换为Environment。换行符

myString = myString.Replace(System.Environment.NewLine, "replacement text"); //add a line terminating ;

正如在其他文章中提到的,如果字符串来自另一个环境(OS),那么您需要替换特定环境的新行控制字符实现。