my $input1 = "hours";
my $input2 = "Total hours";
my ($matching_key) = grep { /$input2/ } $input1;
print "Matching key :: $matching_key";
我想要从$ input2中去掉“Total”并将其赋值给input2,这样我的grep行就会匹配。我如何去除这个词?在Perl中删除字符串的一部分
my $input1 = "hours";
my $input2 = "Total hours";
my ($matching_key) = grep { /$input2/ } $input1;
print "Matching key :: $matching_key";
我想要从$ input2中去掉“Total”并将其赋值给input2,这样我的grep行就会匹配。我如何去除这个词?在Perl中删除字符串的一部分
我不知道,我完全理解你的问题,反正你可以去除总这样的:
$input2 =~ s/Total //;
在此之后$输入2的值将"hours"
。
我不明白充分“分配回INPUT2所以我的grep线将匹配”的一部分......
像这样
my $input1 = "hours";
my $input2 = "Total hours";
$input2 =~ m/($input1)/;
print "Matching key : $1\n";
我不知道到底是什么你”再询问,但如果你想$input2
是 '总',尝试
$input2 =~ s/ hours//;
或
$input2 = substr $input2, 0, 5;
同样,如果你想$input2
是 '小时',尝试
$input2 =~ s/Total //;
或
$input2 = substr $input2, 6;
如果我正确理解你的问题,你想
$input2 =~ s/Total //;
然而,你也在使用grep()
;它返回第二个参数中的元素数组(它也应该是一个列表),它们与第一个参数中给出的模式相匹配。虽然它实际上会返回标量上下文中的“小时”,但它们是您使用它的方式,这非常巧合。
抱歉不清楚。基本上作为用户,我会输入“小时”。登录到计算机并获取信息后,我分配$ input2。 $ input2将总是有“总小时数”,但我不希望用户输入为“总小时数”,而只是几小时。因此,我想删除“Total”,所以$ input2将匹配$ input1。 – user238021
我认为最好用_capture_而不是'grep'来完成。 –