加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby中字符串中所选字符替换的所有可能组合

发布时间:2020-12-16 20:53:40 所属栏目:百科 来源:网络整理
导读:我想知道是否有一种简单的方法可以用简单的方式在ruby中完成所选字符替换的每个组合. 一个例子: string = "this is a test" subs = ['a'='@','i'='!','s'='$'] subs.combination.each { |c| string.gsub c } 会屈服 "this is @ test" "th!s !s a test" "thi
我想知道是否有一种简单的方法可以用简单的方式在ruby中完成所选字符替换的每个组合.

一个例子:

string = "this is a test"
    subs = ['a'=>'@','i'=>'!','s'=>'$']
    subs.combination.each { |c|
        string.gsub c
    }

会屈服

"this is @ test"
    "th!s !s a test"
    "thi$i$a te$t"
    "th!s !s @ test"
    "thi$i$@ te$t"
    "th!$!$a te$t"
    "th!$!$@ te$t"

谢谢您的帮助!

解决方法

string = "this is a test"
subs = ['a'=>'@','s'=>'$']

subs = subs.first.map(&:to_a)
1.upto(subs.length).each do |n|
  subs.combination(n).each do |a|
    p a.each_with_object(string.dup){|pair,s| s.gsub!(*pair)}
  end
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读