音译字符串可以很容易地交换字符

ZDNet软件频道 时间:2004-02-23 作者:Builder.com |  我要评论()
本文关键词:
Perl提供了音译(或者说翻译)操作符,即tr///,这使得将一个字符与另一个字符之间的交换成为简单的操作。
本文译自Builder.com,未经许可请勿转载

Perl提供了音译(或者说翻译)操作符,即tr///,这使得将一个字符与另一个字符之间的交换成为简单的操作。tr///操作符也可以用于移除相邻重复的字符,从一个字符串中移除指定的字符,或者计算指定字符的出现次数。

虽然tr///操作符看起来像是经常使用的表达操作m//和s///,但是它没有使用常规的表达式或者交换字符串。相反的,tr//使用一个搜寻列表和一个交换列表。

搜寻和交换列表中包含特定字符串或者被一个dash分离的连续字符串的范围。例如,以下两个字符串的设定是一样的:/ABCDEFG/或/A-G/。由于不同的人都有不同的字符设定,所以明智的做法是,以相同大小写的字母顺序(a-z, A-Z)或者数字(0-4)作为要操作的开始字符和结束字符。

Tr///返回要被交换的字符个数。如果交换字符串比搜寻字符串的要少,交换字符串的最后字符将不断重复以满足足够长度为止。如果交换列表为空,则搜寻列表将作为交换列表而使用。当你想计算字符出现的个数而不是交换字符的个数时,这一性质非常有用。

以下是使用Tr///的一些例子:

tr/aeiouAEIOU/./;          # 使用一个period取代所有和vowel

$count = tr/A-Za-z//;      # 计算字母字符串个数

tr/n-za-mN-ZA-M/a-zA-Z/;   # ROT13加密



责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134