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

时间:2018-09-19 14:25:14

标签: regex 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

2 个答案:

答案 0 :(得分:0)

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

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

            } 

答案 1 :(得分:0)

您的问题确实不是很清楚。但是,也许是这样的:

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
  }
}