Ruby 在文件的数组中查找坏字,然后将其替换为***
我是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}","***")
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”]
变成一个坏单词,这样每个人都会理解你。你的问题是什么?