perl的一些函数(二)
1. tr 转换 转换不是替换(tr///==y///)
tr/searchlist/replacementlist/用于查找某个一个字符串,并用replacementlist替换,可以使用正则表达式
my $str="this Is A teST";
$str=~tr/a-z/A-Z/; 把小写转换为大写 会输出THIS IS A TEST
s/// options
g 全局替换
i 忽略大小写
my $str3="this is a test\n";
$str3=~s/t/haha/g; =====>hahahis is a hahaeshaha
print $str3;
$str3=~s/HaHa/t/ig; =====>this is a test
print $str3;
this is a test
tr 与 替换的区别
tr可以使用正则表达式,替换不行,没法使用$str=~s/a-z/A-Z/; 不会有任何改变 tr/ab/ABC/ 替换原则是a->A b->B 而s/ab/ABC/会将ab->ABC
- tr///
The transliteration operator. Same as
y///
.
$count = $str3=~ tr/i/i/; # count the stars in $sky count the number of a and store into $count
统计i的个数存放在$count
#!/usr/bin/perl use strict; my $str1="this Is A tr TEST"; my $str2="this Is A tr TEST"; $str1=~s/t/T/g; $str2=~tr/a-z/A-Z/; print "$str1\n"; print "$str2\n"; my $str3="this is a test\n"; my $count=$str3=~tr/i/i/; print "\ncount the number of i --->$count<----\n";
结果:
D:\>perl tr.pl
This Is A Tr TEST
THIS IS A TR TEST
count the number of i --->2<----
tr Options:
c Complement the SEARCHLIST. 清单没写到的就补给他右边清单的最后一个字元
d Delete found but unreplaced characters. 对照表中没有的项目就删掉
s Squash duplicate replaced characters. 重复的字符变成一个
my $strs="have a good day\n";
$strs=~tr/a/_/c; =====> _a___a_______a__
print $strs;
$strs=~tr/ao/Ao/s; =====>hAve A god dAy 两个O变成一个
my $strs="have a good day\n";
$strs=~tr/hag/HA/d; ===>HAve A ood dAy
参考:http://www.cnblogs.com/blueicely/archive/2012/12/13/2816371.html
生成随机数:
rand
Returns a random fractional number greater than or equal to 0 and less than the value of EXPR.
example:
int(rand(10))
returns a random integer between 0 and 9, inclusive.