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/;
翻译操作符修饰符
以下是与翻译相关的操作符列表。
序号 | 修饰符和说明 |
---|---|
1 | c 补充 SEARCHLIST。 |
2 | d 删除找到但未替换的字符。 |
3 | s 压缩重复的替换字符。 |
/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
广告