perl中tr的用法(转载)

转载:http://blog.sina.com.cn/s/blog_4a0824490101hncz.html

(1)/c表示把匹配不上的字符进行替换.

$temp="AAAABCDEF";

$count=$temp=~tr/A/H/c;

print "$temp $count ";

结果:AAAAHHHHH 5

(2)/d:表示把匹配上的字符全部替换

$temp="AAAABCDEF";

$count=$temp=~tr/A/H/d;

print "$temp $count ";

结果:HHHHBCDEF 4

(3)/s:表示如果要替换的字符中出现连续多个一样的字符,则去冗余:

$temp="AAAABCDEF";

$count=$temp=~tr/A/H/ds;

print "$temp $count ";

结果:HBCDEF 4

$temp="AAAABCDEF";

$count=$temp=~tr/A/H/cs;

print "$temp $count ";

结果:AAAAH 5

=============================================================

另外,我再总结一下tr的用处:

$count=$temp=~tr/A//; #表示计算$temp中出现A的次数,$temp并不改变值

$count=$temp=~tr/A/A/; #表示计算$temp中出现A的次数,$temp并不改变值 和上面的意思一样的


$temp="AAAABCDEF";

$count=$temp=~tr/[A-Z]/[a-z]/; #表示进行大小写转换

print "$temp $count ";

结果:aaaabcdef 9 
如果写成$count=$temp=~tr/[A-Z]/[A-Z]/; 则$temp不会改变,仅统计$temp里面大写字母的个数
结果:AAAABCDEF 9
原文地址:https://www.cnblogs.com/steamed-bread/p/5558778.html