2

perl を使用して以下の文字列を分割する必要があります。詳細は以下のとおりです。CSV ファイルからテーブルにデータをロードする必要があります。文字列変数は "" で囲みます。アイデアを提供してください。私は perl スクリプトを初めて使用します。

弦 :"February 6, 2012","","","1","02/06/12","","",1,1,0

出力:

February 6, 2012
<BLANK VALUE>
<BLANK VALUE>
1
02/06/12
<BLANK VALUE>
<BLANK VALUE>
1
1
0
4

3 に答える 3

8

これはCSVによく似ています。その場合は、正規表現の代わりに適切なモジュールを使用してください。優れたText::CSV_XSがあります。

于 2012-11-15T14:00:26.713 に答える
0

正規表現を使用して分割できます。分割したい各アイテムは、このようにグループでラップする必要があります

^\"(.*?)\",\"\",\"\",\"(.*?)\",\"(.*?)\",\"\",\"\",(\d),(\d),(\d)

括弧内の式はグループです。コードでグループを取得できます。

于 2012-11-15T14:18:10.517 に答える
0
#!/usr/bin/perl
use strict;
use warnings;

my $ac = qq("February 6, 2012","","","1","02/06/12","","",1,1,0);

$ac=~s/\"//ig;
my @arr = split(',', $ac);
$arr[0] .= $arr[1];
print $arr[0] . "\n"; # the date is February 6, 2012

# print other elements
for (my $i=2; $i < @arr; $i++) {
    if ($arr[$i] eq '') {print "<BLANK VALUE>\n";}
    else {print $arr[$i] . "\n";}
}
于 2012-11-15T14:27:10.150 に答える