String.Split() -将连续分隔符视为一个分隔符

本文关键字:分隔符 一个 连续 Split String | 更新日期: 2023-09-27 18:06:01

我试图解析一组"固定宽度"数据文件,我在引号中使用,因为每个数据文件的宽度不同。但是,字段之间有X个空格分隔,所以我想先读入一行,然后再读入一行。分割(' ')

但是,这对连续空格不起作用!div !

你有几个选择。

第一个是使用string.Split()过载,它接受StringSplitOptions参数并传入StringSplitOptions.RemoveEmptyEntries:

string[] columns = lineOfText.Split(new [] {' '}, StringSplitOptions.RemoveEmptyEntries);

这样,如果一行中有多个空格,生成的空条目将被丢弃。

第二个选项是使用正则表达式进行解析。在您的情况下,这可能不是必需的,但是如果格式变得更复杂,或者您希望它随着时间的推移略有变化,则可以派上用场。

String.Split() -将连续分隔符视为一个分隔符

如果您想使用正则表达式来实现您想要的结果,您需要使用Regex.Split()代替:

using System.Text.RegularExpressions;
string[] columns = new Regex(@"'s+", RegexOptions.Compiled).Split(lineOfText);