Perl正则表达式的八大原则

本文和大家重点讨论一下Perl正则表达式的概念,Perl正则表达式是初学Perl的难点所在,不过只要一旦掌握其语法,你就可以拥有几乎无限的模式匹配能力,而且Perl编程的大部分工作都是掌握常规表达式。

Perl正则表达式的八大原则

如果在Unix中曾经使用过sed、awk、grep这些命令的话,相信对于Perl语言中的Perl正则表达式(RegularExpression)不会感到陌生。Perl语言由于有这个功能,所以对字符串的处理能力非常强。在Perl语言的程序中,经常可以看到Perl正则表达式的运用,在CGI程序设计中也不例外。

Perl正则表达式是初学Perl的难点所在,不过只要一旦掌握其语法,你就可以拥有几乎无限的模式匹配能力,而且Perl编程的大部分工作都是掌握常规表达式。下面给大家介绍几条Perl正则表达式使用过程中的8大原则。

Perl正则表达式在对付数据的战斗中可形成庞大的联盟——这常常是一场战争。我们要记住下面八条原则:

◆原则1:Perl正则表达式有三种不同形式(匹配(m//),替换(s///eg)和转换(tr///))。

◆原则2:Perl正则表达式仅对标量进行匹配($scalar=~m/a/;可以工作;@array=~m/a/将把@array作为标量对待,因此可能不会成功)。

◆原则3:Perl正则表达式匹配一个给定模式的最早的可能匹配。缺省时,仅匹配或替换Perl正则表达式一次($a='stringstring2';$a=~s/string//;导致$a='string2')。

◆原则4:Perl正则表达式能够处理双引号所能处理的任意和全部字符($a=~m/$varb/在匹配前把varb扩展为变量;如果$varb='a'$a='as',$a=~s/$varb//;等价于$a=~s/a//;,执行结果使$a="s")。

◆原则5:Perl正则表达式在求值过程中产生两种情况:结果状态和反向引用:$a=~m/pattern/表示$a中是否有子串pattern出现,$a=~s/(word1)(word2)/$2$1/则“调换”这两个单词。

◆原则6:Perl正则表达式的核心能力在于通配符和多重匹配运算符以及它们如何操作。$a=~m/\w+/匹配一个或多个单词字符;$a=~m/\d/"匹配零个或多个数字。

◆原则7:如果欲匹配不止一个字符集合,Perl使用"|"来增加灵活性。如果输入m/(cat|dog)/则相当于“匹配字符串cat或者dog。

相关推荐