Perl正则表达式的三种形式

本文和大家重点讨论一下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......请看下面的例子:

相关推荐