【问题标题】:How do I remove the first occurence of a substring in string?如何删除字符串中第一次出现的子字符串?
【发布时间】:2013-12-15 03:49:17
【问题描述】:
如何删除给定子字符串的第一次出现?
我有:
phrase = "foobarfoo"
当我打电话时:
phrase.some_method_i_dont_know_yet ("foo")
我希望该短语看起来像 barfoo。
我尝试使用 delete 和 slice,但第一个删除了所有出现,但第二个只返回了切片。
【问题讨论】:
标签:
ruby-on-rails
ruby
string
substring
【解决方案1】:
使用String#[] 方法:
phrase["foo"] = ""
相比之下,在我的系统中,这个解决方案比 String#sub! 快 17%
【解决方案2】:
sub 会做你想做的事。 gsub 是您可能已经熟悉的全球版本。
【解决方案3】:
使用sub! 将您要查找的内容替换为“”(无),从而将其删除:
phrase.sub!("foo", "")
结尾的 !(bang) 使其永久化。 sub 与 gsub 不同,sub 仅替换您尝试查找的字符串的第一个实例,而 gsub 查找所有实例。