起步于系统工程师,迈进入测试工程师,从起初的C/S系统到互联网时代的B/S系统,从事过电信增值业务、软交换、烟草OA、公安技侦和电子商务等行业的软件测试开发和管理多年,愿与大家共同分享共同交流,关注软件项目管理、测试团队管理、软件流程控制和软件性能测试及自动化测试技术。互联网时代,技术推动进步,欢迎人才推荐:jonas.wangl@alibaba-inc.com
Perl 正则表达式的三种形式整理
上一篇 /
下一篇 2009-11-08 16:56:22
/ 个人分类:脚本开发
51Testing软件测试网k
@1ibT
51Testing软件测试网@XD2?t!K$Y$dv[ 正则表达式的三种形式51Testing软件测试网E:t
y {!Z7~ E
lq!f)?G5uN0正则表达式是 Perl 语言的一大特色,也是 Perl 程序中的一点难点,不过如果大家能够很好的掌握他,就可以轻易地用正则表达式来完成字符串处理的任务,当然在 CGI 程序设计中就更能得心应手了。下面整理列出一些正则表达式书写时的一些基本语法规则。 51Testing软件测试网9Xx8k&uG
51Testing软件测试网 [WwrSE;f首先我们应该知道 Perl 程序中,正则表达式有三种存在形式,他们分别是:51Testing软件测试网l'Pi1yOJx s2_'B
W
qZ
P;nXz4nq)Ap0匹配:m/<regexp>/ (还可以简写为 /<regexp>/ ,略去 m)51Testing软件测试网wW/Gp8Z,Se)e:hO7_
*~8Bn(b7M"H K/k7L$}0替换:s/<pattern>/<replacement>/51Testing软件测试网Z+j/WRC8F
C0J&yHI|5G5C2zL&]0转化:tr/<pattern>/<replacemnt>/51Testing软件测试网#dm.j^\$rV)U!r
!Syy0Y(]{j$tu&aF0这三种形式一般都和 =~ 或 !~ 搭配使用(其中 "=~" 表示相匹配,在整条语句中读作 does,"!~" 表示不匹配,在整条语句中读作 doesn't),并在左侧有待处理的标量变量。如果没有该变量和 =~ !~ 操作符,则默认为处理 $_ 变量中的内容。举例如下: @]
{;_#z0
k;?q6O,i/z/Y O0$str = "I love Perl"; M"C7b:Ny0$str =~ m/Perl/; # 表示如果在 $str 中发现 "Perl" 字符串,则返回 "1" 否则返回 "0"。 q,z:Df:l6@,_bU5S0$str =~ s/Perl/BASH/; # 表示将变量 $str 中的 "Perl" 字符串替换为 "BASH",如果发生此替换则返回 "1",否则返回 "0"。51Testing软件测试网 l}6k)]2J $str !~ tr/A-Z/a-z/; # 表示将变量 $str 中的所有大写字母转化为小写字母,如果转化发生了则返回 "0",否则返回 "1"。51Testing软件测试网/IE,t)~n;^
h,y9d{@L~0另外还有: 9uC9Ad1| s0
vy"}a5Z@0foreach (@array) { s/a/b/; } # 此处每次循环将从 @array 数组中取出一个元素存放在 $_ 变量中,并对 $_ 进行替换处理。51Testing软件测试网o!y.b2ATT#R)j0@'r while (<FILE>) { print if (m/error/); } # 这一句稍微复杂一些,他将打印 FILE 文件中所有包含 error 字符串的行。 ^(W
gj h0
|