2016-04-05 6 views
1

У меня есть строка со многими разрывами строк. Их два типа. \ n и \ r \ n Я хочу, чтобы строка \ r \ n прерывалась, но я хочу избавиться от \ n. Есть ли простой способ сделать это? Боюсь, что если я использую метод replace, это также повлияет на мои разрывы.Удалите 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" 

Как мне сделать эту строку для вывода «Это текст должен быть только один разрыв строки \ г \ п»?

+0

Используя регулярное выражение, вы должны быть в состоянии целевой \ п, а не \ г \ п –

ответ

3

Вы можете использовать Regex

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

это также убирая одно пространство с \ п –

+0

@MaheshChand Вы правы, я обновил ответ ... – Eser

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 
0
var replacedText = Regex.Replace(text, "(?<!\\r)\\n",""); 

enter image description here

Смежные вопросы