我是ruby的新手,希望有人能帮我弄清楚如何打开一个文件,然后用gsub查找和替换多个条件。
这是我到目前为止得到的结果,但这似乎不起作用,因为第二个替换var覆盖了第一个:
text = File.read(filepath)
replace = text.gsub(/aaa/, "Replaced aaa with 111")
replace = text.gsub(/bbb/, "Replace bbb with 222")
File.open(filepath, "w") {|file| file.puts replace}
发布于 2010-10-29 11:07:16
将第三行更改为
replace = replace.gsub(/bbb/, "Replace bbb with 222")
发布于 2010-10-29 11:07:00
你每次都要替换原来的"text“,第二行需要替换掉:
replace = replace.gsub(/bbb/, "Replace bbb with 222")
发布于 2010-10-29 11:15:13
一个有趣的问题是,如果你不想重新扫描数据,可以使用gsub的块形式:
replace = text.gsub(/(aaa|bbb)/) do |match|
case match
when 'aaa': 'Replaced aaa with 111'
when 'bbb': 'Replace bbb with 222'
end
end
这可能不是最有效的方法,但这是看待问题的另一种方式。如果性能对您很重要,那么这两种方法都值得进行基准测试。
https://stackoverflow.com/questions/4048678
复制相似问题