有可能做一个不区分大小写的`gsub`吗?

Sta*_*cca 18 ruby regex case-insensitive

我做一个gsub交换"bad""good".有没有办法使用,capitalize所以它会交换大小写?或者我必须写def两次?

def add_more_ruby(string)
  string.gsub('bad','good').capitalize
end
Run Code Online (Sandbox Code Playgroud)

Mar*_*pka 41

您可以传递Regexp而不是String,使用i指示此正则表达式不区分大小写的选项:

def add_more_ruby(string)
  string.gsub(/bad/i, 'good')
end
Run Code Online (Sandbox Code Playgroud)

请注意,它不仅将替代'bad''BAD',而且,例如,'bAd'.如果您只想替换全大写或全小写,您可以:

string.gsub(/bad|BAD/, 'good')
Run Code Online (Sandbox Code Playgroud)