如何删除字符串中第一个子串的出现?

时间:2013-11-29 02:25:53

标签: ruby-on-rails ruby string substring

如何删除给定子字符串的第一个出现?

我有:

phrase = "foobarfoo"

,当我打电话时:

phrase.some_method_i_dont_know_yet ("foo")

我希望短语看起来像barfoo

我尝试使用deleteslice,但第一次删除所有匹配项,但第二次只返回切片。

3 个答案:

答案 0 :(得分:13)

使用sub!替换您要查找的内容“”(无),从而将其删除:

phrase.sub!("foo", "")

最后的!(爆炸)使它永久化。 subgsub不同,sub只替换您要查找的字符串的第一个实例,而gsub找到所有实例。

答案 1 :(得分:1)

sub会做你想要的。 gsub是您可能已经熟悉的全球版本。

答案 2 :(得分:0)

使用String#[]方法:

phrase["foo"] = ""

为了进行比较,在我的系统中,该解决方案比String#sub!快17%