我正在尝试解析一组“固定宽度”数据文件,我在引号中使用它,因为每个数据文件的宽度不同。但是,字段由X个空格分隔,所以我想只读取行,然后执行line.Split('')
但是,这对连续的空格不起作用! !
答案 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);