`

perl学习笔记(六)--正则

    博客分类:
  • Perl
阅读更多
#!/usr/bin/perl

use 5.010;

=pod
	perl中表达式三种形式:
	1、匹配:m/<regexp>;/mosxg cg
	2、替换:s/<pattern>;/<replacement>;/mosxge g表示全部替换,而不是只替换首次出现的;e表示把<replacement>;当做一个运算符;
	3、转化:tr/<pattern>;/<replacement>;/cds
	=~ 表示匹配
	!~ 表示不匹配
	默认处理$_变量
=cut

my $str = "I Love Perl";
say $str =~ m/Perl/; #如果在$str中发现'Perl'字符串,则说明匹配成功,返回1,否则返回0   #结果为:1
say $str =~ s/Perl/Bash/; #表示将标量$str中的'Perl'替换成'Bash',替换成功则返回1,否则返回0   #结果为:1
say $str !~ tr/A-Z/a-z/; #表示将变量$str中的所有大写字母转化为小写字母,如果转化发生了则返回0,否则返回1   #结果为:

my $string = "I Love Perl";
$string =~ s/(Love)/<$1>;/;
say $string; #结果为:I <Love>; Perl
$string = "I Love Perl";
$string =~ s/(I)(.*)(Perl)/<$3>;$2<$1>;/;
say $string; #结果为:<Perl>; Love <I>;


$str = "i:love:perl";
$str =~ s/:/*/;
say $str;#结果为:i*love:perl
$str =~ s/:/*/g;
say $str;#结果为:i*love*perl
$str !~ tr/*/ /;
say $str;#结果为:i love perl

$str = "www22cgi44";
$str =~ s/(\d+)/$1*2/eg;
say $str;#结果为:www44cgi88


$str = "Hello World,Hello Perl.";
$str =~ tr/a-z/a-z/s;
say $str;#结果为:Helo World,Helo Perl.

#匹配边界
#\b匹配任何单词边界,\w类和\W类之间的区别定义。 
#因为\w一个字的字符,\W相反,这通常是指一个词的终止。 
#\B断言不是一个单词边界匹配任何位置
$str = "the cat sat";
say $str =~ /\bcat\b/; #结果为1
$str = "cat on the mat";
say $str =~ /\bcat\b/; #结果为1
$str = "verification";
say $str =~ /\Bcat\B/; #结果为1
$str = "the cat on the mat";
say $str =~ /\Bcat\B/; #结果为
$str = "catatonic";
say $str =~ /\bcat\B/; #结果为1
$str = "polecat";
say $str =~ /\bcat\B/; #结果为
$str = "polecat";
say $str =~ /\Bcat\b/; #结果为1
$str = "catatonic";
say $str =~ /\Bcat\b/; #结果为

$date = '03/26/1999';
$date =~ s#(\d+)/(\d+)/(\d+)#$3/$1/$2#;
say $date;#结果为:1999/03/26

#使用\G断言
#\G断言,让您可以继续搜索从最后一个匹配发生的点。
#例如,在下面的代码,我们使用的\G,使我们可以搜索到正确的位置,
#然后提取一些信息,而无需创建一个更复杂的,单一的正则表达式:
$string = "The time is: 12:31:02 on 4/12/2015";
$string =~ /:\s+/g;
($time) = ($string =~ /\G(\d+:\d+:\d+)/);
$string =~ /.+\s+/g;
($date) = ($string =~ m{\G(\d+/\d+/\d+)});
print "Time: $time, Date: $date\n";

say "----正则表达式中的变量----";
#正则表达式中的变量
#$ ,包含匹配无论最后的分组匹配
#$&,其中包含整个匹配的字符串
#$`,其中包含匹配字符串前的一切字符
#$',其中包含匹配的字符串后的一切字符。
$string = "The food is in the salad bar";
$string =~ m/foo/;
say "Before: $`",length($`);
say "Matched: $&",length($&);
say "After: $'",length($');

##?Pattern?仅仅匹配一次
@list = qw/food foosball subeo footnote terfoot canic footbrdige/;
foreach (@list){
   $first = $1 if ?(foo.*)?;
   $last = $1 if /(foo.*)/;
}
print "First: $first, Last: $last\n"; #结果为:First: food, Last: footbrdige

分享到:
评论

相关推荐

    正则表达式基础学习笔记

    不同的编程语言和环境可能使用不同的正则表达式引擎,如Perl兼容正则表达式(PCRE)、JavaScript的正则表达式等,它们在语法细节和功能上可能存在差异。 七、实例应用 1. 邮箱验证:`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-...

    perl学习笔记

    以下是对Perl学习笔记中提到的关键知识点的详细说明: 1. **标量**: 标量是Perl中最基本的变量类型,用于存储单个值,如字符串或数字。变量名前缀是美元符号“$”。例如,`$first_name = "Melanie"`定义了一个名...

    Perl学习笔记

    ### Perl学习笔记关键知识点 #### 1. Perl简介 - **定义**:Perl是一种脚本语言,被设计用于处理文本文件、提取信息并生成报告。它由Larry Wall在1987年创建,目的是为了弥补当时其他语言如C、sed、awk等在处理文本...

    Perl 学习笔记

    ### Perl学习笔记 #### 第1章:Perl简介与基本语法 - **Hello, World!**:Perl中的第一个程序通常是从“Hello, World!”开始的。例如: ```perl #!/usr/bin/perl print "Hello, world!\n"; ``` 或者简化为: ...

    (正则表达式)学习笔记

    在这个“正则表达式”学习笔记中,我们将深入探讨这一强大的工具。 1. **基础概念** - **字符集**:包括普通字符(如 `a`、`b`)和特殊字符(如 `.`、`\d`),它们组合起来形成匹配模式。 - **量词**:如 `*` ...

    Perl学习笔记.docx

    这只是Perl语言基础的一部分,Perl还有更高级的概念,如正则表达式、对象导向编程、模块开发等。深入学习Perl,可以提升文本处理、系统管理以及自动化任务的效率。通过不断实践和探索,你可以掌握这个强大工具的所有...

    Perl语言入门学习笔记

    受污染的数据需要通过正则表达式进行净化(untaint)才能使用。对于需要处理用户输入的程序(如CGI脚本),使用taint模式是必要的。 `-d`参数启动Perl调试器,这是一个非常有用的工具,可以帮助开发者跟踪代码执行...

    perl的学习笔记1

    综上所述,"perl的学习笔记1"涵盖了Perl语言的基础语法、核心特性、数据结构、文件操作、正则表达式、模块使用以及错误处理等多个方面的知识,对于初学者和进阶者都是极好的学习资源。通过阅读和理解这些笔记,你...

    Perl语言学习完全笔记

    ### Perl语言学习完全笔记知识点概览 #### 一、Perl语言简介 ...以上内容为Perl语言学习笔记的主要知识点概览,涵盖了语言的基础语法、数据类型、操作符、数组处理以及文件读写等方面,适合初学者快速入门和深入学习。

    Perl语言入门学习笔记.docx

    Perl语言是一种功能强大的脚本编程语言,尤其适合文本处理和系统管理任务。...以上只是Perl语言入门的基础知识,Perl还包含模块系统、正则表达式、异常处理等高级特性,随着学习深入,你将发现Perl的强大和灵活性。

    PERL系统学习教程笔记.zip

    通过"PERL系统学习教程笔记",你可以逐步了解和掌握这些概念,从基础的变量和控制结构开始,逐渐深入到更复杂的特性,如正则表达式和模块使用。同时,实践是学习Perl的关键,结合实际项目或小练习,将有助于更好地...

    正则表达式的笔记记录呢

    - 不同的编程语言可能有不同的正则表达式实现,如Perl、PCRE(Perl兼容正则表达式)和JavaScript的实现有细微差别。 8. **实际应用** - **验证输入**:检查电子邮件格式、电话号码格式等。 - **搜索与替换**:在...

    高级Perl编程(黑豹书)+学习手札

    而《Perl_学习手札》可能是一本个人学习笔记或者实践总结,它可能包含作者在学习Perl过程中的心得、常见问题解决方案和实际项目经验。这样的书籍通常更具实战性,能够帮助读者在解决实际问题时找到灵感。 通过结合...

    PHP学习笔记总结.doc

    【PHP学习笔记总结】 PHP(超文本预处理器)是一种广泛使用的开源脚本语言,特别适合于Web开发。它能够嵌入HTML中,让开发者在服务器端处理数据,生成动态网页内容。与JavaScript不同,PHP代码在服务器上执行,然后...

Global site tag (gtag.js) - Google Analytics