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

前端 未结 5 942
悲&欢浪女
悲&欢浪女 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:44

    I'd do as below :

    string = "this is a test"
    subs = {'a'=>'@','i'=>'!','s'=>'$'}
    
    keys = subs.keys
    combinations = 1.upto(subs.size).flat_map { |i| keys.combination(i).to_a }
    
    combinations.each do |ary|
      new_string = string.dup
      ary.each { |c| new_string.gsub!(c,subs) }
      puts new_string
    end
    

    output

    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
    

提交回复
热议问题