Perl 的翻译操作符


翻译类似于 Perl 中的替换原则,但与替换不同,翻译(或音译)不使用正则表达式进行搜索和替换。翻译操作符是:

tr/SEARCHLIST/REPLACEMENTLIST/cds
y/SEARCHLIST/REPLACEMENTLIST/cds

翻译将 SEARCHLIST 中的所有字符都替换为 REPLACEMENTLIST 中对应的字符。例如,使用我们在本章中一直在使用的字符串“The cat sat on the mat.”:

示例

 在线演示

#/user/bin/perl
$string = 'The cat sat on the mat';
$string =~ tr/a/o/;
print "$string\n";

执行上述程序后,将产生以下结果:

The cot sot on the mot.

也可以使用标准的 Perl 范围,允许您按字母或数值指定字符范围。要更改字符串的大小写,您可以使用以下语法代替 uc 函数。

$string =~ tr/a-z/A-Z/;

翻译操作符修饰符

以下是与翻译相关的操作符列表。

序号修饰符和说明
1c
补充 SEARCHLIST。
2d
删除找到但未替换的字符。
3s
压缩重复的替换字符。

/d 修饰符会删除与 SEARCHLIST 匹配但在 REPLACEMENTLIST 中没有对应项的字符。例如:

示例

 在线演示

#!/usr/bin/perl
$string = 'the cat sat on the mat.';
$string =~ tr/a-z/b/d;
print "$string\n";

执行上述程序后,将产生以下结果:

b b b.

最后一个修饰符 /s 会删除被替换的重复字符序列,因此:

示例

 在线演示

#!/usr/bin/perl
$string = 'food';
$string = 'food';
$string =~ tr/a-z/a-z/s;
print "$string\n";

执行上述程序后,将产生以下结果:

fod

更新于:2019年11月29日

606 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告