Ruby中的gsub到底是什么?

问题描述

我仍在学习Ruby,并且正在练习我的get路由和post请求,用户登录登录基本网站等情况,但遇到了“问题”方法

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

我尝试使用irb尝试弄清楚gsub在做什么:

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

但这只是给了我

"hello"

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

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

谢谢!

解决方法

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

sub代表“ substitute”,而G代表“ global”。将Gsub视为“全部替换”功能。

常规模式是str.gsub(“目标字符串”,“替换字符串”)。

在您的示例中,什么都没有改变,因为字符串“ hello”中没有空格可以替换为“-”字符。

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

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

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

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

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