c# - 取字符串的最后n行c#

标签 c# string string-parsing

我有一个未知长度的字符串

它的格式

\nline
\nline
\nline

不知道它有多长我怎么能只取字符串的最后 10 行 由“\n”分隔的行

最佳答案

随着字符串变大,避免处理无关紧要的字符变得更加重要。使用 string.Split 的任何方法效率低下,因为必须处理整个字符串。一个有效的解决方案必须从后面穿过字符串。这是一种正则表达式方法。

请注意,它返回一个 List<string> ,因为结果在返回之前需要反转(因此使用了 Insert 方法)

private static List<string> TakeLastLines(string text, int count)
{
    List<string> lines = new List<string>();
    Match match = Regex.Match(text, "^.*$", RegexOptions.Multiline | RegexOptions.RightToLeft);

    while (match.Success && lines.Count < count)
    {
        lines.Insert(0, match.Value);
        match = match.NextMatch();
    }

    return lines;
}

关于c# - 取字符串的最后n行c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942885/

相关文章:

c# - ASP.NET Identity 中的零星应用程序死锁

c# - 我的其余 Windows 窗体代码在哪里

C++ 字符串扩展导致分配错误

java - 尝试使用正则表达式解析日志文件

c# - 当线程区域性不是英语时,.NET CookieException "Cookie format error"- 仅在某些环境中

c# - 结合来自数据库的 3 个文本来填充组合框

php - MySQL密码检查器

c - 读取字符串的单个字符以及字符串数组指向的字符串本身

c# - 可以基于 C# 中的 Type 实例访问给定类型的 Parse 方法吗?

json - Angular:HttpErrorResponse :"Http failure during parsing for..."- 从服务器成功返回的字符串