Ruby on rails 新手:在我的情况下,文本替换

Ruby on rails 新手:在我的情况下,文本替换,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,在我的Ruby on Rails应用程序中,我的助手中有一个方法,它通过以下方式打开了一个文件: content = File.open(myfile.txt) 文件的内容类似于: my.car , my.seat, my.age; my.son , my.dog, my.chair; ... 因此,我将内容按“;”拆分,如下所示: content.split(';').each do |line| #Here, I want to replace the text from "

在我的Ruby on Rails应用程序中,我的助手中有一个方法,它通过以下方式打开了一个文件:

content = File.open(myfile.txt)
文件的内容类似于:

my.car , my.seat, my.age;
my.son , my.dog, my.chair;
...
因此,我将内容按“”拆分,如下所示:

content.split(';').each do |line|
      #Here, I want to replace the text from "my" to "her" on each line
end
如何将内容中每行的“我”替换为“她”?

这是为了将内容更新到:

her.car , her.seat, her.age;
her.son , her.dog, her.chair;
...
------------------------------------更新----------------------

我想更新打开文件的内容,而不仅仅是在从ruby代码读取内容时替换字符串

line.gsub!(/my/, "her")
尽管您可能希望正则表达式更具体,例如

line.gsub!(/\bmy\./, "her")
尽管您可能希望正则表达式更具体,例如

line.gsub!(/\bmy\./, "her")

无法动态修改文件的内容。文件只能追加,不能展开,因此不能将
my
替换为
her

您可以从以下基本代码开始:

buf = ""

File.open('myfile.txt') do |file|
    file.readlines.each do |line|
        buf << line.gsub('my', "her")
    end
end

File.open('myfile.txt', 'w') do |file|
    file << buf
end
buf=“”
File.open('myfile.txt')do | File|
file.readlines.each do|行|

buf无法动态修改文件内容。文件只能追加,不能展开,因此不能将
my
替换为
her

您可以从以下基本代码开始:

buf = ""

File.open('myfile.txt') do |file|
    file.readlines.each do |line|
        buf << line.gsub('my', "her")
    end
end

File.open('myfile.txt', 'w') do |file|
    file << buf
end
buf=“”
File.open('myfile.txt')do | File|
file.readlines.each do|行|

buf这是一个非常基本的问题,在互联网上搜索“ruby文本替换”将为您提供所需的所有信息。在提问之前,请先研究一下。我在帖子中写错了,我的意思是我想更新打开文件的内容,而不仅仅是替换字符串。这是一个非常基本的问题,在互联网上搜索“ruby文本替换”将为您提供所需的所有信息。在提问之前请先研究一下。我在帖子中把它放错了,我的意思是我想更新打开文件的内容,而不仅仅是替换字符串。gsub和gsub之间有什么区别?。gsub!自行替换字符串我尝试过,它确实会替换字符串,但文件的内容不会更改。我想更新打开的文件的内容…如果文件不是太大,请将其读入内存,在执行过程中进行替换,完成后将文件写回。在某些情况下,它很重,但如果您的文件足够小,这不是一个糟糕的解决方案。我会小心翼翼地一点一点地替换这些东西……如果您的流程失败,并且您已经处理了一半的文件,那么您可能会遇到问题。然而,收集输出然后写入至少会缩小发生此类问题的窗口。gsub和gsub之间的区别是什么?。gsub!自行替换字符串我尝试过,它确实会替换字符串,但文件的内容不会更改。我想更新打开的文件的内容…如果文件不是太大,请将其读入内存,在执行过程中进行替换,完成后将文件写回。在某些情况下,它很重,但如果您的文件足够小,这不是一个糟糕的解决方案。我会小心翼翼地一点一点地替换这些东西……如果您的流程失败,并且您已经处理了一半的文件,那么您可能会遇到问题。然而,收集输出然后写入至少会缩小发生此类问题的窗口。