除了"g",如何用" "替换字符串中的所有字符?



如何从字符串中删除所有字符,数字和符号,然后用 " "

替换它。
string = "bi2gger 1is 00ggooder"

gsub在这里过大。使用String#tr

string = "bi2gger 1is 00ggooder"
string.tr("^g", " ")
# => "   gg         gg     "

这将返回一个新字符串。相反,要修改原始字符串,请使用tr!

在repl.it上查看:https://repl.it/kjpy

您可以将String#gsub[^g]一起使用,该CC_7替换除了g以外的所有字符,用" "

string.gsub(/[^g]/," ") #=> "   gg         gg     "

可以通过正则表达式

来实现这一点

如评论所述,可以将这个问题归结为正则表达式。为了替换字符串中的每个" g"字符,您可以使用正则表达式:"g"0

因此,最简单的解决方案是使用String#gsub和正则表达式更改匹配该规则的所有字符。(请注意,您还具有此方法String#gsub!的BANG版本,该方法将替换您的原始字符串(

您可以在网站上阅读/尝试正则表达式:Regexpal

String#gsub可以在此处使用。

string = "bi2gger 1is 00ggooder"
string.gsub(/./) { |s| s=='g' ? 'g' : ' ' }
  #=>    "   gg         gg     " 

最新更新