我之前使用gsub进行正则表达式匹配,但是我应该为字符串文字调用什么?
我希望将pair[0]
替换为pair[1]
,只要文件中找到pair[0]
。
text = File.read( fname )
@hash_old_to_new.each do
|pair|
puts "\tReplacing " + pair[0] + " with " + pair[1]
# result = text.gsub( /pair[0]/, pair[1] ) <--- this is no good
end
File.open( fname, "w" ) { |file| file << result }
答案 0 :(得分:4)
gsub
也适用于字符串文字。
text.gsub!(pair[0], pair[1])
请注意gsub
返回一个新的String,而不是“就地”修改现有的String。由于您的代码编写方式,这将导致您丢失更新。您可以使用gsub!
,否则您可以链接这样的呼叫:
text = text.gsub(pair[0], pair[1])
答案 1 :(得分:1)
你离答案不远:
直接在gsub中使用字符串:
result = text.gsub( pair[0], pair[1] )
或者在正则表达式中使用字符串:
result = text.gsub( /#{pair[0]}/, pair[1] )