【问题标题】: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

我尝试使用 deleteslice,但第一个删除了所有出现,但第二个只返回了切片。

【问题讨论】:

  • 感谢您提出这个问题

标签: ruby-on-rails ruby string substring


【解决方案1】:

使用String#[] 方法:

phrase["foo"] = ""

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      结尾的 !(bang) 使其永久化。 subgsub 不同,sub 仅替换您尝试查找的字符串的第一个实例,而 gsub 查找所有实例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-10
        • 2011-03-14
        • 2013-10-04
        相关资源
        最近更新 更多