Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式中的帮助和存储结果_Regex_Perl - Fatal编程技术网

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

Regex 正则表达式中的帮助和存储结果,regex,perl,Regex,Perl,大家好, 我有一个文本文件,其中包括: set_global_assignment -name FA "titan VII" set_global_assignment -name DE ASDF3HF 我想使用perl查找并提取FA(结果:titan VII)和DE(结果是:ASDF3HF)的结果。我只知道正则表达式的基本知识,我不习惯做表达式和存储这个输出。请帮忙 非常感谢您可以: use strict; use warnings; my ($fa,$de); open DATA,'&

大家好, 我有一个文本文件,其中包括:

set_global_assignment -name FA "titan VII"
set_global_assignment -name DE ASDF3HF
我想使用perl查找并提取FA(结果:titan VII)和DE(结果是:ASDF3HF)的结果。我只知道正则表达式的基本知识,我不习惯做表达式和存储这个输出。请帮忙 非常感谢

您可以:

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";
使用严格;
使用警告;
我的($fa,$de);
打开数据,您可以执行以下操作:

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";
使用严格;
使用警告;
我的($fa,$de);
打开数据,以下是一种方法:

#!/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
以下是一种方法:

#!/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

非常感谢,我们可以删除“.”,只获取FA,这样以后就不需要再次处理。非常感谢,我们可以删除“.”,只获取FA,这样以后就不需要再次处理。