C#Regex.Replace多个换行符

Sha*_*awn 5 c# regex

我有一个包含更多或更少段落的文本文件.文本实际上不是单词,它的逗号分隔数据; 但那并不重要.文本文件有点分为几个部分; 可以有部分和子部分.部分的划分由换行符表示不止一个换行符和子部分.

所以样本数据:

This is the, start of a, section
908690,246246246,246246
246246,246,246246

This is, the next, section,
sfhklj,sfhjk,4626246
4yw2,fdhds5juj,53ujj
Run Code Online (Sandbox Code Playgroud)

所以上面的数据包含两个部分,每个部分有三个小节.但有时,部分之间有多个空行.如果发生这种情况,我想多换行字符转换,说\n\n\n\n刚才\n\n; 我认为正则表达式可能就是这样做的.我也可能需要使用不同的换行标准,unix \n和windows \r\n.我认为这些文件可能包含多个endline编码.

这是我提出的正则表达式; 没什么特别的:

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

首先,这是一个很好的正则表达式解决方案吗?我对正则表达式不太好.

其次,我想将每个部分拆分成字符串数组中的元素:

Regex.Split(input, Enviroment.NewLine + Enviroment.NewLine)
Run Code Online (Sandbox Code Playgroud)

有没有办法结合这些步骤?

Ala*_*ore 6

[\r\n|\n]是错的.这是一个字符类匹配的人物之一\r,\n|.

匹配通用行分隔符的常用习语是(?:\r\n|[\r\n])(?:\n|\r\n?).这些将匹配\r\n(DOS/Windows)中,\r(较老的Macintosh),或\n(在Unix/Linux/Mac OS X的).

我会将所有行分隔符规范化\n,然后分成两个或更多个:

Regex.Split(Regex.Replace(source, @"(?:\r\n|[\r\n])", "\n"), @"\n{2,}")
Run Code Online (Sandbox Code Playgroud)