Tag: lines

C#Regex匹配包含新行的标签之间的任何文本

这是我的正则表达式: \[\[START\]\]\[\[OK\]\](.*?)\[\[END\]\] 我想获得[[START]][[OK]]和[[END]]包含的任何文字。 但是,当我的文本包含一些\r\n字符时,我的正则表达式与它不匹配。 它怎么能使它工作?

StreamReader.Readline()真的是计算文件中行数的最快方法吗?

在环顾四周的时候,我发现了很多关于如何计算文件中行数的讨论。 例如这三个: c#如何计算文本文件中的行数 确定文本文件中的行数 如何快速计算线? 那么,我继续前进并最终使用了我能找到的最有效(至少是内存方式?)方法: private static int countFileLines(string filePath) { using (StreamReader r = new StreamReader(filePath)) { int i = 0; while (r.ReadLine() != null) { i++; } return i; } } 但是当文件中的行本身非常长时,这需要永远。 真的没有更快的解决方案吗? 我一直在尝试使用StreamReader.Read()或StreamReader.Peek()但是我不能(或者不知道如何)让它们中的任何一个一旦有’东西’就转移到下一行(字符?文字?)。 有什么想法吗? 结论/结果 (根据提供的答案进行一些测试后): 我在两个不同的文件上测试了下面的5种方法,我得到了一致的结果,似乎表明普通的StreamReader.ReadLine()仍然是最快的方法之一…说实话,我对所有评论后感到困惑在答案中讨论。 文件#1: 大小:3,631 KB 行数:56,870 文件#1的结果以秒为单位: 0.02 – > ReadLine方法。 0.04 – >读取方法。 0.29 – […]