Perl 中正则表达式
发布时间:2020-12-15 23:43:58 所属栏目:大数据 来源:网络整理
导读:正则表达式的三种形式 Perl程序中,正则表达式有三种存在形式,如下: 匹配:m/regexp/; (还可以简写为 /regexp/; 省略 m)替换:s/pattern/replacement/;转换: tr/pattern/replacement/; 这三种形式一般都和 =~ 或 !~ 搭配使用(其中 "=~" 表示相匹配,在整条
正则表达式的三种形式
Perl程序中,正则表达式有三种存在形式,如下: 匹配:m/<regexp>/; (还可以简写为 /<regexp>/; 省略 m) 替换:s/<pattern>/<replacement>/; 转换: tr/<pattern>/<replacement>/;这三种形式一般都和 =~ 或 !~ 搭配使用(其中 "=~" 表示相匹配,在整条语句中读作 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 中字符串大写字母转换成小写字母。如果转换发生则返回"1",否则返回"0"; 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>/; ## 替换后 $string 变为 “<Perl> love <I>”;替换操作 s/<pattern>/<replacement>/ 还可以在末尾加上 ?e 或 g 参数,它们的含义分别为: s/<pattern>/<replacement>/g ##表示把待处理字符串中所有符合<pattern> 的模式全部替换为 <replacement>字符串,而不是只替换第一个出现的模式。 s/<pattern>/<replacement>/e ##表示把<replacement>部分当作一个算术表达式。如下面的例子: $string = "i:love:perl"; $string =~ s/:/*/; ## 结果 $string = "i*love:perl"; $string = "i:love:perl"; $string =~ s/:/*/g; ## 结果 $string = "i*love*perl"; $string =~ tr/*/ /; ## 结果 $string = "i love perl"; $string = "www22cgi44"; $string =~ s/(d+)/$1*2/eg ; ##结果 $string = "www44cgi88";
/pattern/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? i这个参数表示忽略英文大小写 示例:
正则表达式八大原则:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |