【发布时间】:2015-08-04 09:28:56
【问题描述】:
我正在解析一个分号分隔的 CSV 文件,其中行如下所示
firstField;secondField;thirdField;fourth very long field which I need to truncate;fifth very long field which I need to truncate"
我需要将所有字段截断为 10 个字符
我可以像在
中那样逐个字段地截断它open my $input, "<", "inputFile.txt" or die "Can't open the inputFile.txt";
while (my $line = <$input>){
chomp($line);
my @fields = split(';',$line);
for $field (@fields){
$field =~ s/.{10}\K.*// if ((defined $field) && (length $field > 10));
}
}
有没有什么方法可以有一个正则表达式,可以在行级别上实现这一点? 像
$line = s/;.{10}\K.*;?//g
【问题讨论】:
标签: regex perl csv text-parsing