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

12
如何删除给定子字符串的第一个出现?
我有:
phrase = "foobarfoo"

并且,当我打电话时:

phrase.some_method_i_dont_know_yet ("foo")

我希望这个短语看起来像barfoo

我尝试使用deleteslice,但是第一个方法会删除所有出现的内容,而第二个方法只会返回切片。


感谢您提出这个问题。 - sandre89
3个回答

21
使用 sub! 将要查找的内容替换为 "" (空白),从而删除它:
phrase.sub!("foo", "")

在末尾加上感叹号(!)可以使其成为永久替换。subgsub 不同之处在于,sub 只替换您要查找的字符串的第一个实例,而 gsub 则查找所有实例。


2

sub可以完成你想要的功能。gsub是全局版本,你可能已经熟悉了。


1
使用 String#[] 方法:
phrase["foo"] = ""

相比之下,在我的系统中,这个解决方案比String#sub!快17%。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接