使用正则表达式替换或替换Perl

时间:2014-05-10 06:38:18

标签: regex perl substitution string-substitution

我不确定我在这里做错了什么。为什么正则表达式块不匹配,并且没有发生替换。请帮忙。

#!usr/bin/perl

use strict;
use warnings;

my $x = << "END";

// @@@ START COPYRIGHT @@@
//
//        nth dimesion
//
//        Copyright 2007
//        nth dimension
//        Protected as an unpublished work.
//
//  The computer program listings, specifications and documentation 
//  herein are the property of nth dimension Company,
//  L.P., or a third party supplier and shall not be reproduced, 

END

$x=~s/\/\/\s+Copyright\s+\d{4}$/Copyright 2008/g;

print "$x\n";

打印$ x会打印相同的值。请帮助。

1 个答案:

答案 0 :(得分:1)

您需要/m正则表达式切换,将$视为行尾(而不是字符串结尾)

$x=~s/\/\/\s+Copyright\s+\d{4}$/Copyright 2008/gm;

如果你想留下号码留下的所有内容,你可以使用\K

$x =~ s|//\s+Copyright\s+\K\d{4}$|2008|gm;