2014-10-10 229 views
-1

我想刪除雙引號和反斜槓。刪除反斜槓和引號

我的代碼就像

> "\"BU\"".gsub /"/, '' 
=> "BU" 

我想

BU 

請幫助..

+3

什麼語言?紅寶石? – 2014-10-10 10:17:47

+0

「\」BU \「」.gsub \\「,'' - 不起作用 – kpp 2014-10-10 10:20:00

+0

@YuHao - 是的,這是一種紅寶石語言 – kpp 2014-10-10 10:21:15

回答

0

試試這個:

a = "\"BU\"" 
print a.gsub('"','') 
#=> BU 
1

默認情況下IRB提示會顯示在格式輸出像"string"(即,在雙引號)。在您的輸入中沒有反斜槓,雙引號轉義爲表示文字"符號,因爲輸入字符串在分配給變量的同時位於分隔符的雙引號內。如果你做這樣的字符串分配,如s = ""BU"",解釋者會把第二個"作爲結束標記。通過將字符串放在單引號中(如果輸入包含雙引號),反之亦然,您可以避免這種類型的問題()。如果兩個報價都存在,那麼轉義報價是唯一的選擇。使用print函數查看實際變量內容。

irb(main):007:0> s = "\"BU\"" 
=> "\"BU\"" 
irb(main):008:0> print s 
"BU"=> nil 
irb(main):009:0> m = s.gsub(/"/, "") 
=> "BU" 
irb(main):010:0> print m 
BU=> nil 

0

我喜歡String#deleteString#gsub在這裏,因爲它需要只有一個參數,並讀取更好:

s = "\BU\"" 
s.delete ?" #=> "BU" 
s   #=> "\BU\"" (s is unchanged) 
s.delete! ?" #=> "BU" 
s   #=> "BU" (s is altered) 

s.delete ?"相同s.delete '"'s.delete('"')