我想替换CSV::Table
中的字符串。
我可以使用gsub!
替换字符串,如下所示:
csv = CSV.table(@csv_file)
csv[:tag].each do |tag|
tag.gsub!('Replace1','Replace2')
tag.gsub!('Replace3','Replace4')
end
但我更喜欢将gsub
与方法链
csv[:tag].each do |tag|
tag = tag.gsub('Replace1','Replace2').
gsub('Replace3','Replace4')
end
不幸的是,它并没有改变csv [:tag]字符串。
如何在不使用gsub!
?
答案 0 :(得分:1)
gsub!
会返回self
,因此您可以执行相同的操作:
tag.gsub!('Replace1','Replace2').
gsub!('Replace3','Replace4')
如果您想用已经计算过的字符串替换字符串,可以使用String#replace
:
new_tag = tag.gsub('Replace1','Replace2').
gsub('Replace3','Replace4')
tag.replace(new_tag)