在Perl中翻译字符串

How*_*ard 0 perl translate

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

Perl中是否存在等效功能?

Nik*_*Nik 7

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

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

  • 另外,如果键包含正则表达式元字符,则应在`sort`前添加`map {quotemeta}`. (4认同)