帮助正则表达式和存储结果

时间:2010-12-29 11:39:59

标签: regex perl

全部, 我有一个文本文件包括:

set_global_assignment -name FA "titan VII"
set_global_assignment -name DE ASDF3HF

我想用perl找出并提取FA的结果(结果:titan VII)和DE(结果是:ASDF3HF)。我只知道正则表达式的基础,我不习惯做表达式并存储此输出。请帮忙 非常感谢

2 个答案:

答案 0 :(得分:2)

你可以这样做:

use strict;
use warnings;

my ($fa,$de);

open DATA,'<', $file or die

while(<DATA>) {
        if(/set_global_assignment -name FA\s(.*)/) {
                $fa = $1;
        }elsif(/set_global_assignment -name DE\s(.*)/) {
                $de = $1;
        }
}
print "FA = $fa\nDE = $de\n";

See it

答案 1 :(得分:2)

这是一种方法:

#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;

my %result;
while(<DATA>){
    $result{$1} = $2  if /^set_global_assignment -name (.+?)\s+(.+)$/;
}
print Dumper \%result;


__DATA__
set_global_assignment -name FA "titan VII"
set_global_assignment -name DE ASDF3HF

<强>输出:

$VAR1 = {
          'DE' => 'ASDF3HF',
          'FA' => '"titan VII"'
        };