我有一个字符串,我需要保存转义,然后需要以编程方式进行交互而不需要任何退格:
string = 'first=#{first_name}&last=#{last_name}'
p string.to_s
=> "first=\#{first_name}&last=\#{last_name}"
puts string.to_s
=> first=#{first_name}&last=#{last_name}
如何获得第一个=#{first_name}& last =#{last_name}以分配给我可以扫描的变量,该变量没有“\”字符?
答案 0 :(得分:0)
这两个是等价的:
# double quotes
"first=\#{first_name}&last=\#{last_name}"
# single quotes
'first=#{first_name}&last=#{last_name}'
在这两种情况下,反斜杠实际上都不是字符串的一部分。如果说string.include? '\'
,它将返回false。
但是,如果您要说'\#{}'
,则反斜杠将成为字符串的一部分。这是因为在单引号中,#{}
不进行插值,但会被解释为文字字符。
一些例子:
foo = 1
'#{foo}' # => "\#{foo}"
"#{foo}" # => "1"
'#{foo}' == "\#{foo}" # => true
"\#{foo}".include? '\' # => false
'\#{foo}'.include? '\' # => true
请注意,"\"
是ruby中的无效字符串,但'\'
有效。