2013-10-31 107 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 
}