午後!Ruby経由でファイル内の複数の単語を検索して置換する
Rubyの新機能で、Rubyの基本的な検索と置換機能をコーディングしたいと思っています。 この関数を呼び出すと、パラメータを渡すことができます(検索パターン、単語の置き換え)。
これは、このように動作します:multiedit(パターン1、replacement1、パターン2、replacement2、...)
は今、私は私の関数は、テキストファイルを読み取るパターン1を検索し、replacement2と交換し、検索したいですpattern2を置き換えてreplacement2に置き換えます。最後に、変更されたテキストを別のテキストファイルに書き込む必要があります。
私はuntilループでこれを実行しようとしましたが、次のパターンはすべて無視されますが、最初のパターンだけが置き換えられます(この例ではappleのみが果物に置き換えられます)。私は問題は、私はいつもオリジナルの変更されていないテキストを再読することだと思いますか?しかし、私は解決策を見つけることができません。手伝って頂けますか?私がそれをやっているように機能を呼び出すことは私のために重要です。
def multiedit(*_patterns)
return puts "Number of search patterns does not match number of replacement strings!" if (_patterns.length % 2 > 0)
f = File.open("1.txt", "r")
g = File.open("2.txt", "w")
i = 0
until i >= _patterns.length do
f.each_line {|line|
output = line.sub(_patterns[i], _patterns[i+1])
g.puts output
}
i+=2
end
f.close
g.close
end
multiedit("apple", "fruit", "tomato", "veggie", "steak", "meat")
私を助けてくれますか?
ありがとうございます!
よろしく
これは私が探していたものです。私は古いルビーバージョンを実行しているので、必要な '列挙子'を追加する必要がありましたが、今は正確に何をすべきですか。 お返事ありがとうございます。 –