匹配多个单词并打印字符串

时间:2015-07-22 21:59:03

标签: regex perl

我想匹配abc(VIA)并显示整行

INPUT:

abc (VIA)                    -0.090

total : abc                   0.021

abc (sometext) (VIA)         -0.080

abc (without text)  (VIA)   -0.059

输出:

abc (VIA)                    -0.090

我使用的代码如下:

    if ($line =~ /abc (VIA) (\-\d+\.\d+) / )

         {

          print OUT " $line \n"   ;

          }

2 个答案:

答案 0 :(得分:1)

转出括号并仅匹配您要匹配的字符串,即:

$line =~ /abc \(VIA\)/

根据您的问题,不需要在此之后匹配数字。

答案 1 :(得分:1)

每个匹配都保存在默认变量中。

匹配为:

$line =~ /(abc)(\s)(\(VIA\))/;

$1 will have first match i.e., abc
$2 will have second match i.e., space character
$3 will have third match i.e., (VIA) and so on.

只需使用变量。它们默认填充。