如何在我的字符串中添加\前面的$?

时间:2013-10-30 15:09:05

标签: regex perl

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'。 在$前面的单个\。但是即使我用$替换$,它也会以两个代替。

2 个答案:

答案 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';