2012-04-16 128 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