我有一個文本文件,其中包含更多或更少的段落。文本實際上不是單詞,它的逗號分隔數據;但這並不重要。文本文件被分爲幾個部分;可以有章節和小節。部分的劃分由多個換行符和小節以換行符表示。C#Regex.Replace多個換行
所以樣本數據:
This is the, start of a, section
908690,246246246,246246
246246,246,246246
This is, the next, section,
sfhklj,sfhjk,4626246
4yw2,fdhds5juj,53ujj
所以上面的數據包含兩個部分,每個具有三個子部分。然而,有時候,部分之間有多條空行。發生這種情況時,我想將多個換行符(\n\n\n\n
)轉換爲\n\n
;我認爲正則表達式可能是這樣做的方式。我也可能需要使用不同的換行標準,unix \n
和windows \r\n
。我認爲這些文件可能包含多個endline編碼。
這是我想出的正則表達式;它沒什麼特別的:
Regex.Replace(input, @"([\r\n|\n]{2,})", Enviroment.NewLine + Enviroment.NewLine}
首先,這是一個很好的正則表達式的解決方案?正則表達式我不太好。
其次,我則想每一節分成一個元素的字符串數組:
Regex.Split(input, Enviroment.NewLine + Enviroment.NewLine)
有沒有辦法將這些步驟結合起來?
我想你應該先用'Enviroment.NewLine'替換'([\ r \ n | \ n])'來保持數據的一致性。我不知道如何優化它,我想你不能將它們合併。我想你是對的。你可能想要設置'RegexOptions.Compiled'來加快速度。 – BrunoLM 2010-10-22 00:03:20