4

私はPerlの簡単な行を持っています

s/$var/'string'/g

問題は、 $var に のような文字列が含まれていることjkdlsf$lkjlです。真ん中のドル記号に注意してください。このドル記号が原因で、置換が機能していないようです。変数内にある場合、これをエスケープするにはどうすればよいですか?

4

3 に答える 3

10

\Q引用を使用してください:

s/\Q$var/'string'/g
于 2013-05-28T17:01:26.830 に答える
5

quotemetaまたは\Qおよび\E埋め込まれた正規表現構造を使用します。

s/\Q$var\E/'string'/g;

# or

my $var = quotemeta 'jkdlsf$lkjl';
s/$var/'string'/g;
于 2013-05-28T17:01:53.053 に答える