如何替换像这样的字符串
我觉得这样的事情
inputx.gsub(/variable1/,string1.split(";")[i])
但我不知道我怎么能做这个代码
name1;variable1
name;variable1
name3;variable1
通过
dog;watch;rock
获取此
name1;dog
name;watch
name3;rock
string1 =>狗;观察这个字符串我试图拆分替换每个字符串variable1
请帮帮我
答案 0 :(得分:2)
subst = "dog;watch;rock".split ';'
input.gsub(/variable1/) do subst.shift end
#⇒ "name1;dog \n name;watch \n name3;rock"
答案 1 :(得分:1)
给出(假设)此输入:
inputx = <<-EOD
name1;variable1
name;variable1
name3;variable1
EOD
#=> "name1;variable1\nname;variable1\nname3;variable1\n"
string1 = 'dog;watch;rock'
#=> "dog;watch;rock"
您可以链接gsub
和with_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"
答案 2 :(得分:0)
我不确定是否有办法使用.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
答案 3 :(得分:-1)
file intro2 =&gt;狗;手表;岩
文件介绍
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