第九章:以正则表达处理文本
上一篇 /
下一篇 2008-11-12 11:35:10
/ 个人分类:《Perl语言入门》-小骆驼书-练习题答案
1)
use warnings;
my $what = 'fred|barney';
/($what){3}/;
2)
use warnings;
my $inFile = $ARGV[0];
my $outFile = "$inFile".".out";
open IN, $inFile
or die "Can't open $infile! ($!)";
if (open OUT, ">$outFile"){
while (<IN>){
s/fred/Larry/gi;
print OUT $_;
}
} else {
die "Can't create $outFile: $!";
}
3)
use warnings;
my $in = $ARGV[0];
my $out = $in.".out";
open IN, $in
or die "Can't open $in! :$!";
open OUT, ">$out"
or die "Can't write $out! :$!";
#my answer
#while(<IN>){
# if (s/(fred)(.*)(wilma)/\L\u$3\E$2\L\u$1\E/gi){
# print OUT $_;
# }elsif(s/(wilma)(.*)(fred)/\L\u$3\E$2\L\u$1\E/gi){
# print OUT $_;
# }elsif(s/fred/Wilma/gi){
# print OUT $_;
# }elsif(s/wilma/Fred/gi){
# print OUT $_;
# }else{
# print OUT $_;
# }
#}
#easier
while(<IN>){
chomp;
s/Fred/\n/gi;
s/Wilma/Fred/gi;
s/\n/Wilma/g;
print OUT "$_\n";
}
4)
use warnings;
my $copyRight = "## Copyright (C) 2008 by xjiang";
$^I = "~";
while(<>){
if(s/^(use warnings;)/$1$copyRight/){
print;
}else{
print;
}
}
5)
use warnings;
my $copyRight = "## Copyright (C) 2008 by xjiang";
$^I = "~";
while(<>){
if(/.*($copyRight).*/){
print;
}elsif(s/^(use warnings;)/$1$copyRight/){
print;
}else{
print;
}
}
收藏
举报
TAG: