Замените 1 разрыв строки на 2 разрыва строки в С#

Как я могу растянуть некоторый строковый элемент _text из

A
B
C

to

A

B

C

?

На самом деле, у меня есть текст, полученный из БД

_text = this.NormalizeString(DinamicLibrary.LoadText(DinamicLibrary.Path[(int)_category] + _textdllName, this.TextNumber));

Что мне делать с этим запросом или с _text позже, чтобы получить то, что я хочу? Я понимаю, что я должен изменить \n на \n\n, но не знаю как.


person ДМИТРИЙ МАЛИКОВ    schedule 19.07.2011    source источник
comment
аналогично stackoverflow.com/questions/5470385/   -  person V4Vendetta    schedule 19.07.2011


Ответы (5)


Чтобы соответствовать 3-му \r\n, вы можете использовать регулярное выражение: (?s)(?<=(?:\r\n[^\r\n]*){2})\r\n, например:

var s = @"A
B
C
D
E
F";
var result = Regex.Replace(s, @"(?s)(?<=(?:\r\n[^\r\n]*){2})\r\n", Environment.NewLine + 
    Environment.NewLine);

Выход:

A
B
C

D

E

F
person Kirill Polishchuk    schedule 19.07.2011

Вы можете дублировать новые строки, используя _text.Replace("\n", "\n\n");. Вы действительно предоставили этот ответ, я просто знал название метода для вызова :)

person C.Evenhuis    schedule 19.07.2011

Вы можете использовать Environment.NewLine и String.Replace()

_text.Replace("\n", Environment.NewLine + Environment.NewLine);
person Zinnsoldat    schedule 19.07.2011

обычно разрыв строки представляет собой комбинацию \r и \n, что равно Environment.NewLine("\r\n"). Но один \n также может выполнять разрыв строки. Оба хороши, просто используйте метод замены, чтобы добавить еще один прерыватель строки.

person gekowa    schedule 19.07.2011

person    schedule
comment
Спасибо. Кстати, можно ли заменить с 3-го матча? - person ДМИТРИЙ МАЛИКОВ; 19.07.2011
comment
@ garm0nboz1a, вы имеете в виду с 3-го \r\n? - person Kirill Polishchuk; 19.07.2011
comment
Поддерживает ли System.String оператор умножения? т.е. (Environment.NewLine * 2) == \n\n? Было бы здорово :) - person MattDavey; 19.07.2011
comment
@MattDavey, ты можешь использовать: var result = s.Replace(Environment.NewLine, string.Concat(Enumerable.Repeat(Environment.NewLine, 2))); - person Kirill Polishchuk; 19.07.2011
comment
@ garm0nboz1a, для сопоставления с 3-го \r\n см. Мой другой ответ: stackoverflow. com/questions/6743660/c-string-manipulations/ - person Kirill Polishchuk; 19.07.2011