在C#中将1个换行符替换为2个换行符

3

如何拉伸一些字符串元素_text

A
B
C

to

A

B

C

实际上,我从数据库中获取到一些文本。

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

我应该如何处理这个查询或稍后的 _text 才能得到我想要的结果?我知道我应该将 \n 更改为 \n\n,但不知道如何操作。


类似于https://dev59.com/lVXTa4cB1Zd3GeqP361B - V4Vendetta
7个回答

11
var result = s.Replace(Environment.NewLine, Environment.NewLine + Environment.NewLine);

谢谢。顺便问一下,是否可以从第三个匹配项开始替换? - ДМИТРИЙ МАЛИКОВ
@garm0nboz1a,您是指从第三个\r\n开始吗? - Kirill Polishchuk
System.String支持乘法运算符吗?例如(Environment.NewLine * 2) == "\n\n"?这样就很酷了 :) - MattDavey
2
@MattDavey,你可以使用:var result = s.Replace(Environment.NewLine, string.Concat(Enumerable.Repeat(Environment.NewLine, 2))); - Kirill Polishchuk
@garm0nboz1a,关于第三个\r\n的匹配,请参见我的另一个答案:https://dev59.com/gFnUa4cB1Zd3GeqPZ2BK#6743903 - Kirill Polishchuk

2
string newString = oldString.Replace("\n", "\n\n");

1
string newString = oldString.Replace(Environment.NewLine, Environment.NewLine + Environment.NewLine);

1

要匹配第三个 \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

0

你可以使用 Environment.NewLine 和 String.Replace()。

_text.Replace("\n", Environment.NewLine + Environment.NewLine);

0

你可以使用 _text.Replace("\n", "\n\n"); 复制换行符。其实你已经提供了那个答案,我只是知道该调用哪个方法 :)


0
通常情况下,换行符是\r和\n的组合,相当于Environment.NewLine("\r\n")。但单个\n也可以用作换行符。两者都可以,只需要使用replace方法添加另一个换行符即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接