我在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
答案 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