小编Sha*_*awn的帖子

解析固定列宽C#的可变长度字符串

我正在尝试解析格式化为列的文本报告.每列似乎都是右对齐的固定长度.对于每一行,有时并非所有列都被使用.在这种情况下,似乎使用空格来证明该行中的每一列.输入示例:

031   91    1221,154
043   66     312,222    1      3,047                       3,047    1.5%    .9%
040  118     529,626    1      1,842                       1,842     .8%    .3%
037   45     427,710
019   80     512,153    1     14,685                      14,685    1.2%   2.8%
009   68     520,301                      1    16,085     16,085    1.4%   3.0%
030   13     106,689                      1     1,581      1,581    7.6%   1.4%
008   54     377,593    1      7,098                       7,098    1.8%   1.8%
018   24     171,264
022   25       8,884    1        433                         433    4.0%   4.8%
035    9      42,043
041   13     112,355
Run Code Online (Sandbox Code Playgroud)

列宽如下所示(包括空格的字符数):3,5,12,6,10,7,10,11,8,7.

什么是解析这个的好方法?我已经尝试使用正则表达式来执行此操作,但它显然在读取的第一行上失败,因为我使用的表达式期望整行具有数据:

string pattern = @"^(?.{3})(?.{5})(?.{12})(?thirtyeightyninenumber>.{6})(?{10})(?{7}(? .{10})({11})({8})({7})"???.

寻找一种好的方法将其读入适当的变量,具体取决于该列是否有数据.我觉得我需要投入一大堆 …

c# parsing fixed-width

4
推荐指数
2
解决办法
7473
查看次数

标签 统计

c# ×1

fixed-width ×1

parsing ×1