翻译与Perl中的替换原理相似但不相同,但是与替换不同,翻译(或音译)不使用正则表达式搜索替换值。翻译运算符是-
tr/SEARCHLIST/REPLACEMENTLIST/cds y/SEARCHLIST/REPLACEMENTLIST/cds
该转换将REARCHACEMENTLIST中的所有出现的字符替换为SEARCHLIST中的所有出现的字符。例如,使用“猫坐在垫子上”。我们在本章中一直使用的字符串-
#/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/;
以下是与翻译相关的运算符的列表。
序号 | 修饰符和说明 |
---|---|
1 | c 补充搜索列表。 |
2 | d 删除找到但未替换的字符。 |
3 | s 压下重复的替换字符。 |
/ d修饰符删除与SEARCHLIST匹配的,在REPLACEMENTLIST中没有相应条目的字符。例如-
#!/usr/bin/perl $string = '猫坐在垫子上。'; $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