gpt4 book ai didi

perl - 如何在 perl 中解析多行、固定宽度的文件?

转载 作者:行者123 更新时间:2023-12-04 22:07:19 24 4
gpt4 key购买 nike

我有一个文件需要按以下格式解析。 (所有分隔符都是空格):

field name 1:            Multiple word value.
field name 2: Multiple word value along
with multiple lines.
field name 3: Another multiple word
and multiple line value.

我熟悉如何解析单行固定宽度文件,但对如何处理多行感到困惑。

最佳答案

#!/usr/bin/env perl

use strict; use warnings;

my (%fields, $current_field);

while (my $line = <DATA>) {
next unless $line =~ /\S/;

if ($line =~ /^ \s+ ( \S .+ )/x) {
if (defined $current_field) {
$fields{ $current_field} .= $1;
}
}
elsif ($line =~ /^(.+?) : \s+ (.+) \s+/x ) {
$current_field = $1;
$fields{ $current_field } = $2;
}
}

use Data::Dumper;
print Dumper \%fields;

__DATA__
field name 1: Multiple word value.
field name 2: Multiple word value along
with multiple lines.
field name 3: Another multiple word
and multiple line value.

关于perl - 如何在 perl 中解析多行、固定宽度的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8510445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com