2017-01-11 50 views
0

我有一個字符串,我需要保存逃脫交互編程,然後需要通過編程交互,而無需任何退格鍵:與看跌期權的等價-ruby

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}分配給我可以掃描的變量,但沒有「\」字符?

+1

您是否收到錯誤?反斜槓看起來不像應該引起你的問題,因爲它只是一個轉義字符,而不是字符串中的正確字符。 – jvillian

+0

@jvillian謝謝,我沒有得到任何錯誤。 –

回答

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 

注意"\"是紅寶石無效的字符串,但'\'是有效的。

+0

謝謝Max!對此,我真的非常感激! :) –