我已经把代码打印出来了,鲁比
string = "hahahah"
pring string.gsub("a","b")如何在gsub中添加更多的字母替换?
string.gsub("a","b")("h","l") and string.gsub("a","b";"h","l")没有工作..。
*更新我也试过了,但没有任何成功。
letters = {
"a" => "l"
"b" => "n"
...
"z" => "f"
}
string = "hahahah"
print string.gsub(\/w\,letters)发布于 2020-07-07 07:52:46
你太复杂了。与Ruby中的大多数方法调用一样,您可以简单地将#gsub调用一个接一个地链接在一起:
str = 'adfh'
print str.gsub("a","b").gsub("h","l") #=> 'bdfl'您在这里所做的是将第二个#gsub应用于第一个one的结果。
当然,如果你做了太多的话,这就有点冗长了。因此,当您发现自己将太多的代码串在一起时,您会想要寻找正则表达式解决方案。Rubular是一个修补它们的好地方。
在#gsub和正则表达式中使用散列技巧的方法是为所有可能的匹配项提供散列。这与两个#gsub调用的结果相同:
print str.gsub(/[ah]/, {'a'=>'b', 'h'=>'l'}) #=> 'bdfl'正则表达式匹配a或h (/[ah]/),散列表示用什么替换它们。
总而言之,正如一些评论者提到的那样,只要您使用的是单个字母,str.tr('ah', 'bl')就是解决指定问题的最简单的方法。如果每次替换需要使用两个或更多字符,则需要使用#gsub。
https://stackoverflow.com/questions/62765656
复制相似问题