2013-10-31 105 views
0

我正在寻找双倍空间或更多的多GB字节文件。我希望可以在搜索(regex'ing?)上获得多行换行(换行符)的最佳性能。有什么比“\ n {2,}”更快的吗?我正在使用Java和/或Perl并假设类Unix。另外,我假设这两个平台都是嵌入式系统(即没有第三方库)。有效的方式来正则表达式多个换行

编辑:我试图捕获多行换行之间的数据。目前使用Java Scanner类来捕获数据。

+0

如果你解释了你的实际目标是什么,可能会有所帮助。例如,如果您不想替换或捕获多个换行符,只需使用'\ n {2}' –

+0

感谢您的评论会稍微有效一些。添加了一个轻微的编辑,希望能够增加额外的清晰度。 – TryThis

+3

你似乎在寻找性能,在这种情况下,我建议使用正则表达式不是答案。假设一个Java实现,我建议你简单地扫描字节流并缓冲字节,直到连续两个字节为'\ n',然后将缓冲区转换为你需要的任何格式。 – rolfl

回答

0

在Perl中,您可以将$ /变量设置为“\ n \ n”,然后只读取文件中的行。每个“行”将是两行新行之间的所有文本。

open my $fh, "<", "big_file.txt" or die "um, where did it go?"; 
local $/ = "\n\n"; 
while (my $rec = <$fh>) { 
    .. process $rec 
}