Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个简单的 Perl 行
s/$var/'string'/g
问题是 $var 包含一个字符串,如jkdlsf$lkjl. 注意中间的美元符号。似乎因为这个美元符号,替换不起作用。当它在变量中时,我如何逃避它?
jkdlsf$lkjl
使用\Q报价:
\Q
s/\Q$var/'string'/g
使用quotemetaor\Q和\E嵌入的正则表达式构造:
quotemeta
\E
s/\Q$var\E/'string'/g; # or my $var = quotemeta 'jkdlsf$lkjl'; s/$var/'string'/g;
你可以用反斜杠转义它们:$var=~s/\$/\\\$/g
$var=~s/\$/\\\$/g