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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |