我想用「反斜槓撇號」(\')替換名稱中的撇號(')。但不幸的是沒有得到這麼簡單的東西。如何使用gsub替換撇號
於是就IRB我嘗試以下
X = 「堆棧的」 x.gsub(/ [\ '] /,「\'」)
一些人來說是多麼不工作我得到相同result-棧的代替堆\的
我想用「反斜槓撇號」(\')替換名稱中的撇號(')。但不幸的是沒有得到這麼簡單的東西。如何使用gsub替換撇號
於是就IRB我嘗試以下
X = 「堆棧的」 x.gsub(/ [\ '] /,「\'」)
一些人來說是多麼不工作我得到相同result-棧的代替堆\的
嘗試了這一點:
x.gsub(/[']/,"\\\\\'")
結果:
1.9.3p0 :014 > puts x.gsub(/[']/,"\\\\\'")
anupam\'s
試試這個:
x = "anupam's"; puts x.gsub("'", "\\\\'")
我得到的輸出爲「阿努邦\\的」 :( –
其實我是想把這個字符串放在java腳本中(以形成一個url)...所以這個anupam的字符串工作 –
正如其他評論中提到的那樣,輸出(例如,irb)也會被轉義。如果你使用puts把它打印出來,屏幕上就不會出現兩個反斜槓,然後你就可以在java中使用它了。 –
下面是脈動熱管和addslashes方法紅寶石變體(來自http://www.ruby-forum.com/topic/113067#263640)。這種方法也逃脫\
在字符串中,雙\
:
class String
def addslashes
self.gsub(/['"\\\x0]/,'\\\\\0')
end
end
這將正確逃生阿努邦的:
"anupam's".addslashes # => "anupam\\'s"
其實我想把這個字符串中的Java腳本(形成URL)......等會本阿努邦\\的字符串工作 –
有一個在軌的一個幫手...'escape_javascript'或者只使用''anupam's「.to_json' :) – lwe
1.8.7-P357:008> x.gsub(/ [ '] /, 「\\\\'」) => 「阿努邦\\的」 我正在此:( –
這是正常的 - 檢查產生轉義輸出。如果你打電話放在輸出,那麼你不會看到額外的反斜槓 –
謝謝它工作! –