All possible combinations of selected character substitution in a string in ruby

前端 未结 5 929
悲&欢浪女
悲&欢浪女 2020-12-18 11:07

I was wondering if there is a simple way to do every combination of selected character substitutions in ruby in a simple way.

An example:

    string          


        
5条回答
  •  既然无缘
    2020-12-18 11:53

    A one-line functional solution

    string = "this is a test"
    subs = {'a'=>'@','i'=>'!','s'=>'$'}
    
    (1..subs.size).flat_map { |n| subs.keys.combination(n).to_a }.map { |c| string.gsub(/[#{c.join}]/, subs) }
    # => ["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"]
    

提交回复
热议问题