在Perl中搜索和替换

时间:2012-04-17 04:27:40

标签: regex perl

我想搜索一个句子并将其替换为匹配字符串的哈希值,如下所示:

my $sentence = "abc def hello hi";
$sentence =~ s/abc def/$hash{'abc def'}/g;

我没有得到正确的输出。 任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

这对我有用:

#!/usr/bin/env perl
use strict;
use warnings;

my %hash = ( 'abc def' => 'pqr xyz' );

my $sentence = "abc def hello hi";
$sentence =~ s/abc def/$hash{'abc def'}/g;

print "$sentence\n";

运行时,会打印:

pqr xyz hello hi

如果那不是你的预期,那你还期待什么? (请注意,问题中原始版本的Perl代码中存在大量拼写错误;我认为它们是偶然的,但也许它们是您的问题的关键。使用use strict;use warnings;有助于发现诸如拼写错误的变量名之类的问题。)