C # Regex.Replace Multiple Newlines

У меня есть текстовый файл, который содержит больше или меньше абзацев. Текст - это не слова, а данные, разделенные запятыми; но это не так уж важно. Текстовый файл как бы разделен на разделы; могут быть разделы и подразделы. Разделение на разделы обозначается более чем одной новой строкой, а подразделы - новой строкой.

Итак, пример данных:

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 . Я думаю, что файлы, вероятно, содержат несколько кодировок конечной строки.

Вот регулярное выражение, которое я придумал; Ничего особенного:

Regex.Replace(input, @"([\r\n|\n]{2,})", Enviroment.NewLine + Enviroment.NewLine}

Во-первых, это хорошее решение для регулярных выражений? Я не очень хорошо разбираюсь в регулярных выражениях.

Во-вторых, я хочу разбить каждый раздел на элемент в массиве строк:

Regex.Split(input, Enviroment.NewLine + Enviroment.NewLine)

Есть ли способ объединить эти шаги?

5
задан Shawn 21 October 2010 в 23:09
поделиться