有没有办法在一行中组合替换正则表达式和匹配测试?

时间:2014-05-15 07:11:47

标签: regex perl

答案可能很明显,但我想知道是否有更短的写法:

if ($line =~ m/^REF:  /){
    $line =~ s/^REF:  //;
    # do something else
}

2 个答案:

答案 0 :(得分:4)

s///返回所做的替换次数。相当于你的代码:

if ($line =~ s/^REF:  //) {
    # do something else
}

答案 1 :(得分:1)

你的意思是?

if ($line =~ s/^REF:  //){
    print $line."\n";
}
else {
   print "Line not touched\n";
   }