我有一个包含更多或更少段落的文本文件.文本实际上不是单词,它的逗号分隔数据; 但那并不重要.文本文件有点分为几个部分; 可以有部分和子部分.部分的划分由换行符表示不止一个换行符和子部分.
所以样本数据:
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)
有没有办法结合这些步骤?
[\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)
| 归档时间: |
|
| 查看次数: |
5312 次 |
| 最近记录: |