Ruby 在文件的数组中查找坏字,然后将其替换为***

Ruby 在文件的数组中查找坏字,然后将其替换为***,ruby,Ruby,我是ruby的新手, 我有一个坏字数组,所以我想测试一个文件,如果找到一个坏字,然后用*** class BadWord def changeword bad_word = [ "badword1", "badword2", "badword3", "badword4" ] data = File.read("script.txt") filterdata = bad_word.map{|item| data.gsub("#{item}","***")

我是ruby的新手, 我有一个坏字数组,所以我想测试一个文件,如果找到一个坏字,然后用***

class BadWord
  def changeword
    bad_word = [ "badword1", "badword2", "badword3", "badword4" ]
    data = File.read("script.txt")
    filterdata = bad_word.map{|item|
    data.gsub("#{item}","***")
    File.write("script.txt",filterdata)
  end
end
obj = BadWord.new()
obj.changeword()

我会这样做:

class BadWordsFilter < Struct(:filename)
  attr_reader :filename

  BAD_WORDS   = w%[badword1 badword2 badword3 badword4]
  WORD_REGEXP = Regexp.union(BAD_WORDS)

  def sanitize
    content  = File.read(filename)
    filtered = content.gsub(WORD_REGEXP, '***')

    File.write(filename, filtered)
  end
end

filter = BadWordsFilter.new('script.txt')
filter.sanitize
class BadWordsFilter
那么,你的尝试有什么问题?你的代码有点粗鲁。你可以把你的
bad\u word=[“bad\u word1”、“bad\u word2”、“bad\u word3”]
变成一个坏单词,这样每个人都会理解你。你的问题是什么?