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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.