我需要使用 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
这看起来很像 CSV。如果是,那么请帮自己和我们一个忙,并为它使用适当的模块而不是正则表达式。有优秀的Text::CSV_XS。
#!/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";}
}
您可以使用正则表达式对其进行拆分。您要拆分的每个项目都应包装在一个组中,如下所示
^\"(.*?)\",\"\",\"\",\"(.*?)\",\"(.*?)\",\"\",\"\",(\d),(\d),(\d)
括号中的表达式是一个组,然后您可以在代码中获取组。