gpt4 book ai didi

C# Regex.替换多个换行符

转载 作者:太空狗 更新时间:2023-10-29 23:11:07 25 4
gpt4 key购买 nike

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

所以示例数据:

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)

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

最佳答案

[\r\n|\n] 是错误的。那是一个 character class匹配字符 \r\n| 之一。

匹配通用行分隔符的常用习语是 (?:\r\n|[\r\n])(?:\n|\r\n?) 。这些将匹配 \r\n (DOS/Windows)、\r (较旧的 Macintosh) 或 \n (Unix/Linux/Mac操作系统)。

我会将所有行分隔符规范化为 \n,然后拆分为其中的两个或多个:

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

关于C# Regex.替换多个换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3992716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com