Ruby gsub字符串中的多个字符

 唯美爱人2014 发布于 2023-02-09 15:32

使用Ruby 1.9.3,Rails 3.2,我有以下内容:

"every good boy does fine".gsub("every", "all").gsub("boy", "girl").gsub("fine", "well")
# => "all good girl does well"

有没有更好的方法来写这个?谢谢.

1 个回答
  • String#gsub并且Hash#fetch将是本不错的选择.

    a = "every good boy does fine"
    h = {"every" => "all","boy" => "girl", "fine" =>"well" }
    a.gsub(/\w+/) { |m| h.fetch(m,m)}
    # => "all good girl does well"
    

    要么,

    a = "every good boy does fine"
    h = {"every" => "all","boy" => "girl", "fine" =>"well" }
    Regexp.new("^#{h.keys.join('|')}$") # => /^every|boy|fine$/
    a.gsub(Regexp.new("^#{h.keys.join('|')}$"),h)
    # => "all good girl does well"
    

    2023-02-09 15:35 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有