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

时间:2011-08-16 19:43:23

标签: c# string

我正在尝试解析一组“固定宽度”数据文件,我在引号中使用它,因为每个数据文件的宽度不同。但是,字段由X个空格分隔,所以我想只读取行,然后执行line.Split('')

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

2 个答案:

答案 0 :(得分:23)

你有两个选择。

第一种方法是使用接受string.Split()参数的StringSplitOptions重载并传入StringSplitOptions.RemoveEmptyEntries

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

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

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

答案 1 :(得分:0)

如果您想使用正则表达式来获得所需的结果,则需要改用Regex.Split()

using System.Text.RegularExpressions;

string[] columns = new Regex(@"\s+", RegexOptions.Compiled).Split(lineOfText);