Perl專家 - 我試圖解決我的問題的過程變成了很多代碼,這在PERL中看起來像是我正確地接近了這一點。這是我的問題:Perl文本解析 - 固定的定界結構正在改變
我有一段文字(下面的例子),可以有不同數量的列數據之間的空白。我正在使用一個簡單的拆分,但現在的問題是,列「代碼」現在包含數據中的空間(我只佔最後一列中的空間)。什麼似乎是常數(儘管我無法訪問或控制源結構)是列之間至少有3個空格(可能更多,但不會更少)。
所以,我想說我的列分隔符令牌是「3個空格」,然後修剪每個數據中的數據以獲得我的實際列數據。
COL0 COL1 COL2 COL3 COL4 COL5
- 4 0.2 1 416489 463455 554
1 0.9 1 E1
0 3 1.4 14 E97-TEST 1
- 1 97.5 396 PASS Good
我只是想把值變成6個變量。
注意:COL0可能沒有值。 COL4可能包含數據空間。 COL5可能不包含任何值,或包含空格的數據。所有固定的格式都是用空格(沒有選項卡或其他特殊字符)完成的。澄清 - 列不一致大小。一個文件可能具有13個字符的COL4,另一個文件具有21個字符的COL4。或者不像另一個SO成員那樣嚴格。
可以一列從一個不同的每行之間的偏移開始?例如。 row1是`| 1 2 3 |`(3個空格),row2是`| 11111 2 3 |`(也是3個空格,但現在第二列的偏移量4比第一行大,因爲第二行的第一個值很寬) – DVK 2011-01-20 20:58:44
不,列大小對於每個數據行是一致的文件。可以區分文件,但在文件中保持一致。 – Walinmichi 2011-01-20 21:03:02
列標題是否真的存在? – Svante 2011-01-20 21:04:35