【问题标题】:What exactly is gsub in Ruby?Ruby 中的 gsub 到底是什么?
【发布时间】:2020-08-30 06:14:33
【问题描述】:

我还在学习 Ruby,我正在练习我的 get 路由和 post 请求、用户登录、登录等,我遇到了一个“slug”方法:

def slug
    self.username.strip.downcase.gsub(" ","-")
  end

我尝试使用 irb 来尝试找出 gsub 在做什么:

"hello".gsub(" ","-")

但它只是给了我:

"hello"

我尝试在数组上使用它,但效果不佳。

但我的问题是 gsub 到底在做什么? gsub 一般是什么?这种方法的结果是什么?

提前致谢!

【问题讨论】:

  • 如果您能详细解释一下文档,确切地说您不清楚什么,这将非常有帮助。这样,我们可以避免浪费大量时间和精力,确保我们不会重复您已经知道的内容,同样重要的是我们不会重复您已经阅读但不理解的内容。对于 Ruby 开发人员来说,理解为什么他们的文档未能向您正确解释这些概念也很重要,这样他们就可以改进文档以防止未来的开发人员遇到同样的问题。
  • 目前还不清楚这与 ActiveRecord、Sinatra 和 Visual Studio Code 有什么关系。你在用 Ruby 写一个 VSCode 扩展吗?
  • 有人清楚地明白我在问什么。我来到 Stack Overflow 提出一个简单的问题并得到一个简单的答案,这发生了。我花了 30 分钟查看以前提出的有关 gsub 的问题,但没有人得到我正在寻找的答案。没有 gsub 不是我已经知道的,这就是我问这个问题的原因。我标记了 ActiveRecord、Sinatra 和 VSCode,因为这是我在应用程序中使用的。抱歉,我不知道我应该使用的标签是否有法律规定。
  • 如果我搜索与 X 问题相关的问题,我不想被 Ruby 问题所困扰。
  • 我建议阅读String#gsub的文档。

标签: ruby gsub


【解决方案1】:

在 Ruby 中,Gsub 是一种可以在字符串上调用的方法。它将子字符串的所有实例替换为字符串中的另一个实例。

Sub 是“substitute”的缩写,G 代表“global”。将 Gsub 视为“全部替换”功能。

一般模式是str.gsub("target string", "replacement string")。

在您的示例中,没有任何变化,因为字符串“hello”中没有空格可以替换为“-”字符。

"hello".gsub(" ","-")

以下示例替换了“!”在“你好!”用“,世界”,打印“你好,世界!”

puts "hello!".gsub("!",", world!")

以下示例替换“!”的每个实例在 ”!!!”用“123”,打印“123123123”

puts "!!!".gsub("!", "123")

【讨论】:

  • @RoyalTerminal 没问题!我刚刚编辑了我的答案,为您提供了更多示例。
  • “它将子字符串的所有实例替换为另一个” – 是的,但这只是故事的一半。您应该添加一个使用 pattern 的示例。正则表达式是 gsub 真正闪耀的地方。
猜你喜欢
  • 2010-12-20
  • 2010-11-15
  • 2010-09-17
  • 2015-07-04
  • 2013-07-06
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 2014-10-16
相关资源
最近更新 更多