在PHP中,strtr
可以接受数组输入并替换字符串中所有出现的键,并且将首先尝试最长键。
Perl中是否存在等效函数?
答案 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;