首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby -打开文件,查找并替换多行

Ruby -打开文件,查找并替换多行
EN

Stack Overflow用户
提问于 2010-10-29 11:04:38
回答 6查看 24.6K关注 0票数 26

我是ruby的新手,希望有人能帮我弄清楚如何打开一个文件,然后用gsub查找和替换多个条件。

这是我到目前为止得到的结果,但这似乎不起作用,因为第二个替换var覆盖了第一个:

代码语言:javascript
复制
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}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-10-29 11:07:16

将第三行更改为

代码语言:javascript
复制
replace = replace.gsub(/bbb/, "Replace bbb with 222")
票数 29
EN

Stack Overflow用户

发布于 2010-10-29 11:07:00

你每次都要替换原来的"text“,第二行需要替换掉:

代码语言:javascript
复制
replace = replace.gsub(/bbb/, "Replace bbb with 222")
票数 20
EN

Stack Overflow用户

发布于 2010-10-29 11:15:13

一个有趣的问题是,如果你不想重新扫描数据,可以使用gsub的块形式:

代码语言:javascript
复制
replace = text.gsub(/(aaa|bbb)/) do |match|
  case match
    when 'aaa': 'Replaced aaa with 111'
    when 'bbb': 'Replace bbb with 222'
  end
end

这可能不是最有效的方法,但这是看待问题的另一种方式。如果性能对您很重要,那么这两种方法都值得进行基准测试。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4048678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档