我需要在 perl 中拆分。请看下面的例子:
"john","David2,mick",25,"12-12-2009","male"
我必须在不在引号内的每个逗号 (,) 上拆分此记录。
预期输出为:
john
david2mick
25
12-12-2009
male
你能帮我解决这个问题吗?
您可以使用Perl 5 中的核心模块。假设这不是您在此处拥有的正确 csv 数据,Text::ParseWords
它是 的轻量级选项。Text::CSV
use strict;
use warnings;
use Data::Dumper;
use Text::ParseWords;
my $str = qq("john","David2,mick",25,"12-12-2009","male");
my @list = quotewords(',', 0, $str);
print Dumper \@list;
输出:
$VAR1 = [
'john',
'David2,mick',
'25',
'12-12-2009',
'male'
];
这是一个 CSV 文件。最好使用 Text::CSV 模块
use Text::CSV;
my $line = '"john","David2,mick",25,"12-12-2009","male"';
my $csv = Text::CSV->new();
$csv->parse($line);
my @columns = $csv->fields();