本文和大家重点讨论一下Perl正则表达式的三种形式,Perl正则表达式的三种形式分别是匹配,替换和转化,这三种形式一般都和=~或!~搭配使用。
Perl正则表达式
Perl正则表达式的三种形式
首先我们应该知道Perl程序中,Perl正则表达式有三种存在形式,他们分别是:
◆匹配:m/<regexp>/(还可以简写为/<regexp>/,略去m)
◆替换:s/<pattern>/<replacement>/
◆转化:tr/<pattern>/<replacemnt>/
这三种形式一般都和=~或!~搭配使用(其中"=~"表示相匹配,在整条语句中读作does,"!~"表示不匹配,在整条语句中读作doesn't),并在左侧有待处理的标量变量。如果没有该变量和=~!~操作符,则默认为处理$_变量中的内容。举例如下:
$str="IlovePerl";
$str=~m/Perl/;#表示如果在$str中发现"Perl"字符串,则返回"1"否则返回"0"。
$str=~s/Perl/BASH/;#表示将变量$str中的"Perl"字符串替换为"BASH",如果发生此替换则返回"1",否则返回"0"。
$str!~tr/A-Z/a-z/;#表示将变量$str中的所有大写字母转化为小写字母,如果转化发生了则返回"0",否则返回"1"。
另外还有:
foreach(@array){s/a/b/;}#此处每次循环将从@array数组中取出一个元素存放在$_变量中,并对$_进行替换处理。
while(<FILE>){printif(m/error/);}#这一句稍微复杂一些,他将打印FILE文件中所有包含error字符串的行。
Perl的Perl正则表达式中如果出现(),则发生匹配或替换后()内的模式被Perl解释器自动依次赋给系统$1,$2......请看下面的例子:
$string="Iloveperl";
本篇文章来自<Ahref='http://www.soidc.net'>IDC专家网</a>原文链接:http://www.soidc.net/articles/1215484853295/20071007/1215945554643_1.html
【编辑推荐】