如何在C#中删除字符串中的前n行?

Gjo*_*gji 14 .net c# string

如何删除字符串中的前n行?

例:

String str = @"a
b
c
d
e";

String output = DeleteLines(str, 2)
//Output is "c
//d
//e"
Run Code Online (Sandbox Code Playgroud)

Oma*_*mar 17

你可以使用Linq:

String str = @"a
b
c
d
e";

int n = 2;
string[] lines = str
    .Split(Environment.NewLine.ToCharArray())
    .Skip(n)
    .ToArray();

string output = string.Join(Environment.NewLine, lines);

// Output is 
// "c
// d
// e"
Run Code Online (Sandbox Code Playgroud)

  • 击败我,但你需要`StringSplitOptions.RemoveEmptyEntries`,因为Split分别解释了\ r和\n (4认同)
  • 你在一条难以理解的线路上得到了所有这一切吗?称之为正确使用LINQ?;) (3认同)

use*_*ame 12

如果你需要考虑"\ r \n"和"\ r"以及"\n",最好使用以下正则表达式:

public static class StringExtensions
{
    public static string RemoveFirstLines(string text, int linesCount)
    {
        var lines = Regex.Split(text, "\r\n|\r|\n").Skip(linesCount);
        return string.Join(Environment.NewLine, lines.ToArray());
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是有关将文本拆分为行的更多详细信息.


Luk*_*tný 3

组合获取字符串第 n 次出现的索引?(搜索Environment.NewLine)和子字符串应该可以解决问题。