我想在.
内的给定字符串的部分内替换_
到%{}
的所有引用。见这个例子:
'example 1.1 %{a.b.c} of {d.e.f}.'
应该替换为
'example 1.1 %{a_b_c} of {d_e_f}.'
我必须这样做,因为在较旧的红宝石上example %{a.b.c}' % {:'a.b.c' => 'result'}
不起作用。
答案 0 :(得分:3)
正如@sawa建议的那样,进行一些调整:
'example 1.1 %{a.b.c} of {d.e.f}.'.gsub(/{.+?}/) { |s| s.tr '.', '_' }
=> "example 1.1 %{a_b_c} of {d_e_f}."
答案 1 :(得分:2)
将gsub与块一起使用:
data = 'example 1.1 %{a.b.c} of {d.e.f}.'
p data.gsub(/{.+?}/){|x| x.gsub('.','_')} #=> "example 1.1 %{a_b_c} of {d_e_f}."