如何在特殊字符的正则表达式中使用变量

时间:2017-02-07 06:41:10

标签: regex perl

我有一个文件,其中有一些行

$a = keys $hash;
$b = keys $hash->{TEST}->{TEST2};
$c = keys $hash->{REST}[0] {
$d = keys $hash->{TEST} || {})

我必须将它们替换为

$a = keys %{$hash};
$b = keys %{$hash->{TEST}->{TEST2}}
$c = keys %{$hash->{REST}[0]} {
$d = keys %{$hash->{TEST} || {}})

我试了一下

if ( $line =~ /keys\s(\$[a-zA-Z0-9->{}]*)/ ) {
                    my $pattern = $1;
                    my $new_pattern = "%{$1}”;
                    $line =~ s/$pattern/test/g;
            }

但它不起作用

0 个答案:

没有答案