《Perl语言入门》第四版习题(8)

1. [8]使用模式测试程序。创造一个模式能匹配字符串match。使用字符串beforematchafter 进行测试。输出结果将其三部
分放在正确位置了吗?
2. [7]使用模式测试程序,创造一个模式能匹配任何单词(/w 意义下的单词),但这个单词必需以字母a 结尾。它匹配wilma
而没匹配barney 吗?它匹配Mrs. Wilma Flintstone 吗? wilma&fred 呢?使用前一章习题的文件进行练习(如果没有上
述字符串,则加上它们)
3. [5]修改第二题的程序,使之将由a 结尾的单词放到$1 之中。同时修改源代码,使此变量对应的值被放在单引号之中,
如$1 contains ‘Wilma’。
4. [5]额外练习:修改第三题程序,使之能捕捉由a 结尾的单词之后的5 个字符(如果有那么多),并将之放入一个独立
变量中。例如,如果输入的是I saw Wilma yesterday, 则紧接的5 个字符是yest(前有空格)。如果输入是I, Wilma!,
则只有一个字符。它现在还能匹配wilma 吗?
5. [5]写一个程序(不是测试程序),能输出任何由空白结尾的输入行(非换行符)。在输出的结尾处放置一个标记符,使
之能标记出空白。

 

1、

#!/usr/bin/perl -w
use strict;
while(<>){
        chomp;
        if(/match/){
        print "Matched:|$`<$&>$'|/n";
        }else{
        print "no match:|$_|/n";
        }
}

 

2、

#!/usr/bin/perl -w
while(<>){
        chomp;
        if(//w+a$/){
        print "Matched:|$`<$&>$'|/n";
        }else{
        print "no match:|$_|/n";
        }
}

 

3、

#!/usr/bin/perl -w
while(<>){
        chomp;
        if(/(/w+a$)/){
        print "/$1 contains '$1'/n";
        }
}

 

4、(有点问题)

#!/usr/bin/perl -w
while(<>){
        chomp;
        if(/(/w+a)(/s*.{1,5})/){
        my $temp=$2;
        print "$_ contains '$temp'/n";
        }
}

 

5、

#!/usr/bin/perl -w
while(<>){
        chomp;
        if(//w* $/){
        print "Matched!!The enter is  $_-->/n";
        }else{
        print "No matched!/n";
    }   
}

 

你可能感兴趣的:(测试,perl,语言)