2012-04-16 56 views
0

我有这样的表:解析表成阵列

List<string> 

Total HTTP Packets    727  0.004459 
    HTTP Request Packets   372  0.002281   51.17% 
    GET        372  0.002281   100.00% 
    HTTP Response Packets   353  0.002165   48.56% 
    ???: broken      0  0.000000   0.00% 
    1xx: Informational    0  0.000000   0.00% 
    2xx: Success     337  0.002067   95.47% 
    200 OK       331  0.002030   98.22 
    204 No Content     5  0.000031   1.48 
    206 Partial Content    1  0.000006   0.30 
    3xx: Redirection     10  0.000061   2.83% 
    302 Found       3  0.000018   30.00 
    304 Not Modified     7  0.000043   70.00 
    4xx: Client Error     6  0.000037   1.70% 
    408 Request Time-out    6  0.000037   100.00 
    5xx: Server Error     0  0.000000   0.00% 
    Other HTTP Packets    2  0.000012   0.28% 

我想解析这个表到阵列(每行分成4份)但我的问题是第一列,因为字符串长度改变。 我tty分裂每一行与选项卡,但不幸的是,我确实点包含选项卡。 做什么是最好的方法?

+1

假设'table'是指列表''中的项目,那么您将不得不为每一行标识/指定列分隔符。你在标签的正确轨道上,但如果这不起作用,可能有多个空格?或者你的字符串填充到固定宽度?你真的需要澄清或帮助进一步与项目布局。 – 2012-04-16 15:45:38

+0

其列表,Tabs没有工作,如何使用多个空格? – 2012-04-16 15:51:26

+0

'line.Substring(startIndex,length)' – 2012-04-16 16:06:32

回答

3

我会使用正则表达式(正则表达式类)。正则表达式正是出于这个原因。另外,如果你以XML的形式获得输入(它看起来并不像你),XPath也可能适合你。

我更喜欢正则表达式,因为它更容易编写。你可能只需要知道\s代表空的空间。最好的地方写在Rubular,在那里你可以粘贴你的内容,键入你的正则表达式,并看到当你键入如何匹配。

+0

我不知道如何拆分它 – 2012-04-16 15:45:11

+0

为Rubular链接+1,非常方便 – 2012-04-16 15:46:33

+0

@DanaYeger我不会为你写,但我会从简单的事情开始,如:'([0-9x :] +)\ s([a-zA-Z] +)\ s + \(d +)',这应该给你错误代码,名称和第一列。 – ashes999 2012-04-16 15:54:47