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;

my $strs="have a good day\n";

$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.

 

 

 

 

 

 

 

posted @ 2013-06-17 23:57  to be crazy  阅读(417)  评论(0编辑  收藏  举报