模式匹配:在perl中打印下一行模式中的字符串



这是我的字符串模式,'ACTION'是我的模式。表达式应返回下一行模式中存在的 3 个参数:

这是模式:

ACTION    QUANTITY  USOC      DESCRIPTION                                      
Impact    1         E8PAM     /FIN QC                                           

表达式应返回$1 = Impact , $2= 1, $3= USOC , $4=/FIN QC

这是我的试用版:

if ($line =~/ACTION(.*?)(s+?)$/) {      
print $array[$i];
} 

这给出了如下输出:

Impact    1         E8PAM     /FIN QC

你的问题真的不是很清楚。但是,也许是这样的:

my $action_seen;
while (<$input_fh>) {
if (/ACTION/) {
$action_seen = 1;
next;/
}
if ($action_seen) {
$action_seen = 0;.
my @data = split;
# Do whatever you need to do with the data
}
}

我找到了这个问题的答案:

if ($line =~ /ACTION(.*?)(s+?)$/) {      
my $action = $array[$i];
@actionArr=split(/s+/,$action);
$action = actionArr[0]; 
$QUANTITY =actionArr[1]; 
} 

相关内容

  • 没有找到相关文章

最新更新