muri 发表于 2015-12-27 16:41:35

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   countthe 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<----
  trOptions:


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.
  
  
  
  
  
  
  
页: [1]
查看完整版本: perl的一些函数(二)