我有一个字符串:
a = 'bla \n bla \n bla \n'
一个数组:
b = ['1', '2', '3']
我想搜索字符串,并用数组中的第(n-1)个元素替换\ n的每个第n个实例,结果是:
a = 'bla 1 bla 2 bla 3'
这对我来说最简单的方法是什么?
答案 0 :(得分:5)
String#gsub
简化了这个工作:
a.gsub('\n') { b.shift }
请注意,Array#shift
会修改原始数组。如果这是一个问题,请先复制一份(b.dup
)。
答案 1 :(得分:1)
您可以使用方法sub
a = 'bla \n bla \n bla \n'
b = ['1', '2', '3']
b.each { |i| a.sub!('\n', i) }
#> a
#=> "bla 1 bla 2 bla 3"
答案 2 :(得分:1)
使用String#split
和Array#zip
a.split('\n').zip(b).join
#=> "bla 1 bla 2 bla 3"