{ I~Want~This => 1, KeyTwo => 2, I-6ren">
gpt4 book ai didi

regex - Perl:Grep 哈希中的键

转载 作者:行者123 更新时间:2023-12-01 08:50:57 25 4
gpt4 key购买 nike

请注意,我也对不涉及 grep 的解决方案持开放态度。

假设我有一个这样的哈希值

%HoH = 
(
"KeyOne" => { I~Want~This => 1, KeyTwo => 2, I~Also~Want~This => 3},
)

本质上,我想获取嵌套哈希中与某种模式匹配的每个键,并将其放入数组中(例如 ^I.*Want.*This$)

我尝试了以下方法,但没有用:

my $regex = qr/"^I.*Want.*This$"/;
my @keys = grep {defined $HoH {"KeyOne"}{/$regex/} } keys %{$HoH{"KeyOne"}};

谢谢!

最佳答案

你发布的代码没有为我编译。我在具有 ~ 的散列键周围添加了单引号,并在散列定义之后添加了 ;

解决方案是从正则表达式中删除双引号并简化 grep:

use warnings;
use strict;

my %HoH =
(
"KeyOne" => { 'I~Want~This' => 1, KeyTwo => 2, 'I~Also~Want~This' => 3},
);

my $regex = qr/^I.*Want.*This$/;
my @keys = grep { /$regex/ } keys %{$HoH{"KeyOne"}};

use Data::Dumper;
print Dumper(\@keys);

__END__

$VAR1 = [
'I~Also~Want~This',
'I~Want~This'
];

关于regex - Perl:Grep 哈希中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16304772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com