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には値もスペースも含まれていない可能性があります。すべての固定書式設定はスペース(タブやその他の特殊文字なし)で行われます。明確にするために、列のサイズは一貫していません。 1つのファイルがCOL4を13文字にし、別のファイルがCOL4を21文字の幅で持つことがあります。他のSOメンバーが述べたように厳密ではない。
列は、各行の間に異なるオフセットから開始することができますか?例えば。行1は '| 1 2 3 | '(3スペース)、row2は' | 11111 2 3 | '(3桁も空白ですが、2行目の最初の値が非常に広いため、2行目はオフセット4が最初の行より大きくなります) – DVK
いいえ、列サイジングは、ファイル。ファイルを区別できますが、ファイル内で一貫しています。 – Walinmichi
列見出しが実際に表示されていますか? – Svante