除了“g”之外,如何用“”替换字符串中的所有字符?

时间:2017-04-23 18:04:09

标签: ruby

如何从字符串中删除除"g"之外的所有字符,数字和符号,并将其替换为" "

string = "bi2gger 1is 00ggooder"

4 个答案:

答案 0 :(得分:5)

gsub在这里太过分了。使用String#tr

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

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

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

答案 1 :(得分:2)

您可以[^g]使用g替换" "以外的所有字符,并使用string.gsub(/[^g]/," ") #=> " gg gg "

Dynamic

答案 2 :(得分:1)

可以使用正则表达式

来实现

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

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

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

答案 3 :(得分:0)

String#gsub可以在这里使用。

e.g.  

{% if user.group.name == "somename" %}