2012-07-02 21 views
0

我使用Rad工具(使用.NET框架)和XML來解析數據文件。使用一個線性正則表達式將一行分成兩行

我被困在一個特定的行中,必須分成兩部分。 格式是:(#事後只是傳達列和數據)

Drive Name  UNE Con Accessible by Drive status # column names 
A L D  0 A,B   Storage Subsystem Optimal  # Data row 1   
1   1 A   Storage Subsystem Optimal  # Data row 2 

第一行:

 A L D  0 A   Storage Subsystem Optimal 
     A L D  0 B   Storage Subsystem Optimal 

A L D  0 A,B   Storage Subsystem Optimal 

需要在兩排中的格式被分割

這樣一個線性RE顯示提取的數據格式爲: -

Drive Name UNE Con Accessible by  Drive status 
A L D  0 A  Storage Subsystem Optimal 
A L D  0 B  Storage Subsystem Optimal 
1   1 A  Storage Subsystem Optimal 
+0

這不是一個正則表達式問題;你需要解析你的行並「手動」生成'額外'行。 – beerbajay

+0

一個解決方案或一個班輪稀土接近方法高度讚賞所提到的發佈。由於該文件包含此格式,因此無法更改。 – user1495202

+0

這不是一個正則表達式問題。你不能用正則表達式解決這個問題。如前所述,這對正則表達式不是問題。 – beerbajay

回答

2

期待選項卡作爲2列之間的分隔符。

$string =~ s/([a-zA-Z0-9]+)\t([a-zA-Z0-9 ]+)\t(([a-zA-Z0-9 ]+),([a-zA-Z0-9 ]+))\t([a-zA-Z0-9 ]+)\t([a-zA-Z0-9 ]+)/$1\t$2\t$4\t$6\t$7\n$1\t$2\t$5\t$6\t$7/gs 
相關問題