我有一个文本文件,其中包含更多或更少的段落。 文本实际上不是单词,而是逗号分隔的数据; 但这并不重要。 文本文件有点像分成了几个部分; 可以有节和子节。 节的划分由多个换行符表示,而子节则由一个换行符表示。
因此,示例数据:
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)
有没有一种方法可以将这些步骤结合起来?
Enviroment.NewLine
替换([\r\n|\n])
以保持数据一致性。至于优化,我不知道有什么方法,我猜你不能将它们合并。我猜你走在正确的路上。你可能想设置RegexOptions.Compiled
以使其更快。 - BrunoLM