From: "しん" Date: 2006-06-22T23:57:05+09:00 Subject: [ruby-list:42454] 多量の正規表現との効率的なマッチのアイデアを、、 出沢です 100位の正規表現と10000位レコードのマッチを効率的に行なう方法を考えています。 400Byte/行 10000行位のデータがあります。 このなかに、ある項目の値とその分類番号があります。 分類番号(ともうひとつ別の項目との二次元の組み合わせ)毎の集計を行ないます。 ただし、その「ある項目の値」が複数ある正規表現のどれかとマッチする場合は 分類番号をその正規表現に対応した値に変更して集計します。 当初は正規表現は3個ぐらいで始まりますが、たぶん100位にまで増殖するでしょう。 どれかにマッチする可能性は、10%程度です。 仕事の性格上、後方参照はしないですから、正規表現中に ( ) は無いとして よいかと思います。 単純に考えると、 正規表現を値にする配列を作り、レコードを読むたびに配列の中を順に マッチさせて行けば良いのでしょうが、なんかおもしろくないな、、 ということで、 効率的に行なう方法 か rubyらしい、きれいな方法か か がないものか悩んでいるところです。 ブロックなどの高度な使いかたがまだわかっていないこともあり 御知恵をお借りしたく思います。