1 / 6
文档名称:

perl正则表达式1.doc

格式:doc   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

perl正则表达式1.doc

上传人:rjmy2261 2013/1/9 文件大小:0 KB

下载得到文件列表

perl正则表达式1.doc

文档介绍

文档介绍:Perl 正则表达式
1 正则表达式的三种形式
首先我们应该知道 Perl 程序中,正则表达式有三种存在形式,他们分别是:
匹配:m/<regexp>/ (还可以简写为/<regexp>/ ,略去 m)
替换:s/<pattern>/<replacement>/
转化:tr/<pattern>/<replacemnt>/
这三种形式一般都和=~ 或!~ 搭配使用(其中"=~" 表示相匹配,在整条语句中读作 does,"!~" 表示不匹配,在整条语句中读作 doesn't),并在左侧有待处理的标量变量。如果没有该变量和=~ !~ 操作符,则默认为处理$_ 变量中的内容。举例如下:
$str = "I love Perl";
$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>) { print if (m/error/); } # 这一句稍微复杂一些,他将打印 FILE 文件中所有包含 error 字符串的行。
Perl 的正则表达式中如果出现() ,则发生匹配或替换后() 内的模式被 Perl 解释器自动依次赋给系统$1, $2 ...... 请看下面的例子:
$string = "I love perl";
$string =~ s/(love)/<$1>/; # 此时$1 = "love",并且该替换的结果是将$string 变为"I <love> perl"
$string = "i love perl";
$string =~ s/(i)(.*)(perl)/<$3>$2<$1>/; # 这里$1 = "i",$2 = " love ",$3 = "perl",并且替换后$string 变为"<perl> love <i>"
替换操作 s/<pattern>/<replacement>/ 还可以在末尾加上 e 或 g 参数,他们的含义分别为:
s/<pattern>/<replacement>/g 表示把待处理字符串中所有符合<pattern> 的模式全部替换为<replacement> 字符串,而不是只替换第一个出现的模式。
s/<pattern>/<replacement>/e 表示将把<> 部分当作一个运算符,这个参数用的不多。
比如下面的例子:
$string = "i:love:perl";
$string =~ s/:/*/; #此时$string="i*love:perl";
$string = "i:love:perl";
$string =~ s/:/*/g; #此时$str