我有以下代码:
my $file = 'c:\test.log';
open (FILE, "<", $file) or die $!;
my @list = grep /\bAdobe\b/, <FILE>;
my $days;
foreach (@list) {
$days = $_;
print "$days\n";
}
Run Code Online (Sandbox Code Playgroud)
预期结果是:
"Adobe","10:10:10, 11/10/2011","Ready"
Run Code Online (Sandbox Code Playgroud)
我想用以下代码用逗号分割结果:
my @sample = split(',', $days);
Run Code Online (Sandbox Code Playgroud)
预期结果是:
"Adobe"
"10:10:10
11/10/2011"
"Ready"
Run Code Online (Sandbox Code Playgroud)
但它不是我想要做的:
我想打印输出如下:
"Adobe"
"10:10:10, 11/10/2011"
"Ready"
Run Code Online (Sandbox Code Playgroud)
如何在不使用/安装任何模块(如Text :: CSV)的情况下实现此目的.
请指教,谢谢.
理想情况下,您将使用CSV解析器,请参阅Text :: CSV.或者只要所有字段都是双引号,那么您可以使用具有稍微复杂的正则表达式的拆分,它会检查分隔符:
split /(?<="),(?=")/, $days;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1794 次 |
| 最近记录: |