-1

我是 perl 的新手,我在处理 txt 文件时遇到问题,这让我担心了好几天。我希望有人能帮帮我。这是txt:

AA=a1.png,a2.png,a3.png,b1.png,b2.png,b3.png,fend.png
FF=k1.png,k2.png,k3.png,l1.png,l2.bmp,l3.png
OO=p1.png,y1.png,ul23.bmp
ZZ=i1.png,j1.png

我希望它变成:

AA=a1.png,a2.png,a3.png
AA=b1.png,b2.png,b3.png
FF=k1.png,k2.png,k3.png
FF=l1.png,l2.bmp,l3.png
OO=p1.png
OO=y1.png
ZZ=i1.png
ZZ=j1.png

也就是说,我需要截断最后一种图片,并将前两种图片保持为 1 对 1 格式。提前致谢。

4

1 回答 1

1
my $data = <<'EOD'
AA=a1.png,a2.png,a3.png,b1.png,b2.png,b3.png,fend.png
FF=k1.png,k2.png,k3.png,l1.png,l2.bmp,l3.png
OO=p1.png,y1.png,ul23.bmp
ZZ=i1.png,j1.png
EOD
;

my $last_letter = "";
my $newline = "";
foreach my $line (split(/\n/, $data)) {
    my ($var, $vals) = split("=", $line);
    foreach my $val (split(",", $vals)) {
        $val =~ /^(.)(\d+\..+)$/;
        next unless ($1 && $2);
        if ($last_letter eq $1) {
            print ",";
        } else {
            print "$newline$var=";
            $newline = "\n";
            $last_letter = $1;
        }
        print $val;
    }
}
print "\n";

结果:

AA=a1.png,a2.png,a3.png
AA=b1.png,b2.png,b3.png
FF=k1.png,k2.png,k3.png
FF=l1.png,l2.bmp,l3.png
OO=p1.png
OO=y1.png
ZZ=i1.png
ZZ=j1.png
于 2012-04-30T01:23:42.930 回答