首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用带有更多字母的letters

如何使用带有更多字母的letters
EN

Stack Overflow用户
提问于 2020-07-07 06:54:11
回答 1查看 44关注 0票数 1

我已经把代码打印出来了,鲁比

代码语言:javascript
复制
string = "hahahah"
pring string.gsub("a","b")

如何在gsub中添加更多的字母替换?

代码语言:javascript
复制
string.gsub("a","b")("h","l") and string.gsub("a","b";"h","l")

没有工作..。

*更新我也试过了,但没有任何成功。

代码语言:javascript
复制
letters = {
"a" => "l"
"b" => "n"
...
"z" => "f"
}
string = "hahahah"
print string.gsub(\/w\,letters)
EN

回答 1

Stack Overflow用户

发布于 2020-07-07 07:52:46

你太复杂了。与Ruby中的大多数方法调用一样,您可以简单地将#gsub调用一个接一个地链接在一起:

代码语言:javascript
复制
str = 'adfh'
print str.gsub("a","b").gsub("h","l") #=> 'bdfl'

您在这里所做的是将第二个#gsub应用于第一个one的结果。

当然,如果你做了太多的话,这就有点冗长了。因此,当您发现自己将太多的代码串在一起时,您会想要寻找正则表达式解决方案。Rubular是一个修补它们的好地方。

#gsub和正则表达式中使用散列技巧的方法是为所有可能的匹配项提供散列。这与两个#gsub调用的结果相同:

代码语言:javascript
复制
print str.gsub(/[ah]/, {'a'=>'b', 'h'=>'l'}) #=> 'bdfl'

正则表达式匹配ah (/[ah]/),散列表示用什么替换它们。

总而言之,正如一些评论者提到的那样,只要您使用的是单个字母,str.tr('ah', 'bl')就是解决指定问题的最简单的方法。如果每次替换需要使用两个或更多字符,则需要使用#gsub

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62765656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档