在Perl中翻译字符串

时间:2011-02-20 10:39:36

标签: perl translate

在PHP中,strtr可以接受数组输入并替换字符串中所有出现的键,并且将首先尝试最长键

Perl中是否存在等效函数?

2 个答案:

答案 0 :(得分:7)

是的,简单的正则表达式:

# Where %h contains your key => value mappings
my $keys = join '|', sort {length($b) <=> length($a)} keys %h;
$a =~ s/($keys)/$h{$1}/g;

答案 1 :(得分:3)

不是手动构建正则表达式来评估,而是使用Data::Munge的list2re函数,如下所示:

my $re = list2re sort {length($b) <=> length($a)} keys %h;
$a =~ s/($re)/$h{$1}/g;