perl中有三种模式 m// ,s///,tr///;
前两种就不多说了,经常出现。这里说下tr:
很多人用习惯了s///,发现和tr有很多相同的地方,都是将字符串替换成自己想要的内容。
tr的重要作用在于“转换”.
例如:
大小写转化:
$str = "Hello World";
$str =~ tr/a-zA-Z/A-Za-z/; #这里是将大写转为小写,小写转化为大写
print $str; #输出hELLO wORLD
计算字符串的个数:
$str = "Hello World";
my $count=$str =~ tr/a-z/a-z/; #这里只计算小写字母的出现个数,大写写出A-Z
print $count; # 输出8
关于tr的修饰符有三个: /c,/d./s
perldoc这样解释:
c Complement the SEARCHLIST.
d Delete found but unreplaced characters.
s Squash duplicate replaced characters.
$str = "Hello World";
$str =~ tr/ll/*/c; #将不是l或者ll全部转化成*
print $str; #输出**ll*****l*
$str = "Hello World";
$str =~ tr/ll/*/d; #与c修饰符相反
print $str; #输出He**o Wor*d
$str = "Hello World";
$str =~ tr/ll/*/s; #将连续的ll变为一个*号
print $str;#输出He*o Wor*d
本文转自 mcshell 51CTO博客,原文链接:http://blog.51cto.com/mcshell/1047365,如需转载请自行联系原作者