Perl模式匹配和使用\ k

时间:2015-04-03 22:20:51

标签: regex perl

我在perl的正则表达式中使用\k时遇到了一点困难。从以下几行我需要将pipemed_tb之后的数据导入数组并跳过部分之前可以帮助任何人。如果可能,请告知如何在以下行中有效使用\k

    set stimulusTop pipemed_tb.pipemed1.gtmc1.gthevcpar91.vncunit1
    set stimulusTop pipemed_tb.pipemed1.gtmc1.gthevcpar91.vneunit1
    set stimulusTop vprunit_tb.vprunit1

1 个答案:

答案 0 :(得分:1)

您必须在匹配省略运算符之前混淆\k<n>反向引用和Perl \K。你在这里不需要这个。

以下是一个示例程序(部分内容仅供参考):

my @vals = ();
push(@vals, "set stimulusTop pipemed_tb.pipemed1.gtmc1.gthevcpar91.vncunit1");
push(@vals, "set stimulusTop pipemed_tb.pipemed1.gtmc1.gthevcpar91.vneunit1");
push(@vals, "set stimulusTop vprunit_tb.vprunit1");

foreach my $i (@vals) {
  $i =~ s/set stimulusTop //g;
  print $i."\n";  
}

输出:

pipemed_tb.pipemed1.gtmc1.gthevcpar91.vncunit1                                                                                                                      
pipemed_tb.pipemed1.gtmc1.gthevcpar91.vneunit1                                                                                                                      
vprunit_tb.vprunit1