我想知道是否有一种简单的方法可以以简单的方式在ruby中完成所选字符替换的每种组合。
I was wondering if there is a simple way to do every combination of selected character substitutions in ruby in a simple way.
示例:
string = "this is a test" subs = ['a'=>'@','i'=>'!','s'=>'$'] subsbination.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'=>'@','i'=>'!','s'=>'$'] subs = subs.first.map(&:to_a) 1.upto(subs.length).each do |n| subsbination(n).each do |a| p a.each_with_object(string.dup){|pair, s| s.gsub!(*pair)} end end