perl里的 tr///

2012-12-21 21:54

关于perl里的 tr///

可以参考这篇博客:

http://www.cnblogs.com/blueicely/archive/2012/12/13/2816371.html

-----------------------------------------------------------------------------------------------------------------------

接来看看tr 的选项,tr 只有三个选项,英文是perldoc 的说明,我把他的意思用我的话写出来:
c Complement the SEARCHLIST. <==清单没写到的就补给他右边清单的 最后一个字元
d Delete found but unreplaced characters. <== 对照表中没有的项目就删掉
s Squash duplicate replaced characters. <== 连续重覆出现的字压成一个



来看看范例:
my  $text good cheese  '$text =~ tr/eo/eu/s;  print  $text\n  " ;

# 结果gud chese ,

连续重覆出现的字已被压成一个
my  $big vowels are useful  '$big =~ tr/aeiou/AEI/d;

# 注意看对照表左边只有三个字母,所以如果遇到ou,就会被删掉print "$big\n";

# 结果vwEls ArE sEfl 合并以上两个参数

my  $text good cheese  '$text =~ tr/eogd/eu/ds;

# 写成ds 或sd 都可以,顺序不重要print "$text\n";

#结果u chese 
最后来看c这个选项,c较复杂不易懂,大致以我的大脑所知的说明如下: tr/左清单/右清单/ c 规则、左清单没有的,就补右清单的东西。

my  $text good cheese  '$text =~ tr/eo/_/c;

#注意看对照表右边只有二个字母,只要右边清单没列到的就补'_',包括空白print "$text\n";

# 结果_oo____ee_e

如果右清单写了不只一个呢?会怎样?其实补的时候还是只会拿右清单的最后一个

$doc <78>Nov 3 11:20:01 163.17.44.1 crond[30367]  "$doc =~ y/a-zA-Z/az/c;

# 结果不是英文全都补了右清单的最后一个字元'z'

$doc= zzzzzNovzzzzzzzzzzzzzzzzzzzzzzzzzcrondzzzzzzz

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27042095/viewspace-753960/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27042095/viewspace-753960/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值