我怎么能用数组元素做一个gsub?

how I could do a gsub with array elements?

如何替换这样的字符串

我觉得是这样的

inputx.gsub(/variable1/,string1.split(";")[i])

但我不知道如何编写此代码

name1;variable1 
name;variable1 
name3;variable1 

来自

dog;watch;rock

为了得到这个

name1;dog
name;watch
name3;rock

string1 => 狗;手表;摇滚;我正在尝试拆分此字符串以替换每个字符串变量 1

请帮帮我

我不确定是否有使用 .gsub() 来完成此操作的方法。实现您想要的目标的一种简单方法如下:

str = "dog;watch;rock"

array = str.split(";")

array.each_with_index do |str, i|
    array[i] = "name#{i + 1};#{str}"
end

puts array

输出:

name1;dog
name2;watch
name3;rock

文件介绍 2 => 狗;手表;摇滚

文件介绍

name1;variable1 
  name;variable1 
 name3;variable1     

ruby代码

  ruby  -e   '   n=0; input3= File.read("intro");string1= File.read("intro2")    ;input3x=input3.gsub("variable1") { val =string1.split(";")[n].to_s; n+=1; val }  ;print input3x' >gggf
subst = "dog;watch;rock".split ';'
input.gsub(/variable1/) do subst.shift end
#⇒ "name1;dog \n   name;watch \n   name3;rock"

给定(假设)此输入:

inputx = <<-EOD
name1;variable1
name;variable1
name3;variable1
EOD
#=> "name1;variable1\nname;variable1\nname3;variable1\n"

string1 = 'dog;watch;rock'
#=> "dog;watch;rock"

您可以链接 gsubwith_index 以根据其索引执行替换:

inputx.gsub('variable1').with_index { |_, i| string1.split(';')[i] }
#=> "name1;dog\nname;watch\nname3;rock\n"

您也可以预先执行split

values = string1.split(';')
#=> ["dog", "watch", "rock"]

inputx.gsub('variable1').with_index { |_, i| values[i] }
#=> "name1;dog\nname;watch\nname3;rock\n"