Ruby:替换部分字符串中的所有引用

时间:2013-10-18 13:26:56

标签: ruby regex substring

我想在.内的给定字符串的部分内替换_%{}的所有引用。见这个例子:

'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'}不起作用。

2 个答案:

答案 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}."