删除\ n但保持\ r \ n完整

时间:2016-04-05 18:30:57

标签: c#

我有一个包含许多换行符的字符串。它们有两种类型。 \ n和\ r \ n我想保留\ r \ n换行符,但我想摆脱\ n的。这有什么简单的方法吗?我担心如果我使用替换方法,它也会影响我的\ r \ n休息。

string text = "This is a \ntext there should \nonly be one line break\r\n";

var newtext = text.Replace("\n", "");

这里的输出是

newtext = "This is a text there should only be one line break\r"

如何让这个字符串输出"这是一个只有一个换行符的文本\ r \ n" ?

3 个答案:

答案 0 :(得分:3)

您可以使用Regex

var text2 = Regex.Replace(text, @"([^\r])\n", "$1");

答案 1 :(得分:0)

您可以使用带有后视的正则表达式,它只会替换\n之前没有的\r个字符:

var replacement = Regex.Replace(text, @"(?<!\r)\n","");

您可以see a working example in action here使用以下输入:

Regex.Replace("Line 1\n Still Line 1\r\nLine 2\n Still Line 2", @"(?<!\r)\n","");

产生:

Line 1 Still Line 1
Line 2 Still Line 2

答案 2 :(得分:0)

var replacedText = Regex.Replace(text, "(?<!\\r)\\n","");

enter image description here