在perl中搜索并替换一行中的模式

时间:2014-06-20 18:06:31

标签: perl

我需要正则表达式的帮助:

我的文件有这样一行:

label   9   { V { some_text ; } W { some_text;} } #12345.

现在条件是,如果该行有标签9,我必须用NOP替换它(该行上的其他所有内容应该保持不变)并且我似乎无法找出原因

这就是我所做的(只是代码的相关部分):

my $cur_line = $_;


if($cur_line =~ s/label\s+9/)

{

       $cur_line =~ s/label\s+9/NOP/;
       print "$cur_line";

}

谢谢!

1 个答案:

答案 0 :(得分:3)

你的代码没有为我编译,直到我改变了:

if($cur_line =~ s/label\s+9/)

为:

if($cur_line =~ /label\s+9/)

请注意s/。然后,它执行了你想要的替换。

您可以将其简化为:

my $cur_line = $_;
if ($cur_line =~ s/label\s+9/NOP/) {
    print $cur_line;
}