我有一个像这样的perl哈希:
{
"case1" => 0.05,
"case2" => 0.105,
"case3" => -0.006,
"case4" => -0.0005,
"case5" => 0.0501,
"case6" => 0.098,
"case7" => 0.16,
}
如何使用哈希键将文本中的匹配键替换为值。文本文件示例:
set case1
set case5
set case3
set case4
通过键创建正则表达式
my $regex = join '|', map quotemeta, keys %hash;
然后用它代替
s/($regex)/$hash{$1}/g;
当键的长度不同时,您可能需要在创建正则表达式之前对它们进行最长排序。