次のデータに対してPerl正規表現を書くにはどうすればよいですか?列の説明を解析するための正規表現
OID NOT NULL INTEGER
ACCT_TYPE NOT NULL INTEGER
NAME NULL VARCHAR
PAST_DUE_90 NULL INTEGER
私は3つの別々の列に解析したいと思います。すべての空白スペースはスペースです。 2番目の列が2つの単語または1つを持つことができるという事実は、それを難しくします。各行の末尾には末尾にスペースがあることに注意してください。
私が試した最後のものは、このでした:https://regex101.com/r/6beMrM/1が、私は実際のコードでそれを実行するとcols
がundef
です:正規表現は、ここで働くことを
my ($col1, $col2, $col3) = $line =~ /^(\S+)\s+\b(.+) \b(\S+)\s*$/;
。
ソルブード 各ファイル行には気付いていない先行スペースがありました。
は常に二列です'NULL'か' NOT NULL'ですか? – Toto
私は確かに分かりません。 23種類のデータがあります。したがって、その解決策は一般化されるべきです。 – StevieD
正規表現が単独で動作し、実際のコードでは動作しない場合、なぜコードの代わりに正規表現を表示していますか? [mcve]してください。 – melpomene