2009-06-21 1 views
1

でファイルの読み取りフォーム"#{A} |#{B}" 配列にこのファイルを読み込み、変換するための両方の最も簡単な方法はどのようになるか、:は私が定期的に応じて、HTMLファイルをクリーンアップするために使用する正規表現のリストを含むテキストファイルを持っているルビー

[ 
    [ /<p[^>]*>/, '<p>' ], 
    [ /<\/?(font|span)[^>]*>/, '' ], 
    [ /<\/u>\s*<u>/, '' ], 
    [ /<\/u>\s*<i>\s*<u>/, '<i>' ] 
] 
+0

うーん、私はちょうどあなたのために働くだろうコードを書きました|同じように。 それを試してください。 – Elitecoder

+0

"!"で動作する別のコードを作成しました。 私はそれが助けてくれることを願っています。 – Elitecoder

答えて

2

は、以下のことを試してみてください。

result = File.foreach("list.txt").collect do |line| 
    *search, replace = line.strip.split("|", -1) 
    [Regexp.new(search.join("|")), replace] 
end 

またはあなたのセパレータは正規表現や交換では発生しない場合:

result = File.foreach("list.txt").collect do |line| 
    search, replace = line.strip.split("!", -1) 
    [Regexp.new(search), replace] 
end 
0

#{b}部分は|が含まれることはありませんと仮定すると、私は次の取得:

File.open(filename,"r").collect 
    { |s| 
    x = s.rindex('|'); 
    [ Regexp.new(s[0..x]), s[x+1..-1].chop ] 
    } 

そうでない場合、あなたはおそらく、より複雑なものとs.rindex('|')を交換する必要があります。

関連する問題