如何从字符串中删除所有字符,数字和符号,然后用 " "
?
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 "