my $cmd = 'this is a "testin$g" ok';
print Dumper($cmd);
$ VAR1 ='这是一个“testin $ g”ok';
my $cmd = 'this is a "testin$g" ok';
$cmd =~ s/\$/\\\$/;
print Dumper($cmd);
$ VAR1 ='这是“testin \\ $ g”ok';
我想找到一个看起来像这样的字符串:'这是一个“testin \ $ g”ok'。 在$前面的单个\。但是即使我用$替换$,它也会以两个代替。
答案 0 :(得分:6)
你的正则表达式和字符串都是正确的。 Data :: Dumper转义字符本身。
要打印简单的字符串,请使用
print $cmd."\n";
你会看到它没问题。
另外,试试看看Dumper如何转义字符
print Dumper('this is a "testin\$g" ok');
答案 1 :(得分:1)
您的替换是正确的。如果您执行了以下操作,则会看到$cmd
只包含一个反斜杠。
print("$cmd\n"); # this is a "testin\$g" ok
Data :: Dumper打印一个字符串文字,在执行时会在结构中创建字符串。
$VAR1 = 'this is a "testin\\$g" ok';
表示转储的变量包含
this is a "testin\$g" ok
,因为
this is a "testin\$g" ok
执行时,会被分配到$VAR1
$VAR1 = 'this is a "testin\\$g" ok';