2015-08-21 83 views
-1

如何從字符串中刪除最後一個"l"而不是其他字符?刪除字符串中字母的最後一個實例

string = "Hello" 

期望的結果:

string # => "Helo" 

我所做的:

string.delete!("l") 
string #= > "Heo" 
+1

string.slice! -2 – Joel

+0

對於''lol「',你想要'」lo「'還是'」ol「'? – sawa

+0

感謝所有人的回覆。真正有幫助! @sawa - 這將是「lo」,因爲最後的「l」需要被刪除 – user3007294

回答

4
string[string.rindex('l')] = '' 
+0

這匹配的第一次發生,而不是最後 –

+3

@boulder_ruby,不,它不。這就是爲什麼它是'rindex'而不是'index'。 – ndn

+0

我只是將這個解決方案插入我的代碼並且輸出正常工作。再次感謝! – user3007294

1

您可以使用sub來取代單一的發生和調整正則表達式替換最後一個比賽。

string = "Homemade" 
string.sub(/(.*)m/, '\1') 
# => "Homeade" 

在你的情況下,正則表達式將

string.sub(/(.*)l/, '\1') 
0
str = 'hello' 

r =/
    .* # match any number of any character 
    \K # discard everything matched so far 
    l # match last 'l' 
    /x # extended mode 

str.gsub(r,'') 
    #=> "helo" 
相關問題