Ruby 中的 gsub 到底是什么?

-3 ruby gsub

我仍在学习 Ruby,并且正在练习基本网站的get路线和post请求、用户登录、登录等,我遇到了一种“slug”方法:

def slug
    self.username.strip.downcase.gsub(" ","-")
  end
Run Code Online (Sandbox Code Playgroud)

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

"hello".gsub(" ","-")
Run Code Online (Sandbox Code Playgroud)

但它只是给了我:

"hello"
Run Code Online (Sandbox Code Playgroud)

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

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

提前致谢!

Eva*_*ado 5

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

Sub 是“替代”的缩写,G 代表“全局”。将 Gsub 想象成“全部替换”功能。

一般模式是 str.gsub("目标字符串", "替换字符串")。

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

"hello".gsub(" ","-")
Run Code Online (Sandbox Code Playgroud)

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

puts "hello!".gsub("!",", world!")
Run Code Online (Sandbox Code Playgroud)

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

puts "!!!".gsub("!", "123")
Run Code Online (Sandbox Code Playgroud)

  • _“它将子字符串的所有实例替换为另一个子字符串”_ – 是的,但这只是故事的一半。您应该添加一个使用_pattern_ 的示例。正则表达式是“gsub”真正发挥作用的地方。 (3认同)