|
[ruby-list:42459] Re: 多量の正規表現との効率的なマッチのアイデアを、、: msg#00113lang.ruby.japanese
出沢です > > そこで、たとえばこういう情報を追加して > > mycat=[ "m0" , "m0" ,"m1" ,"m2" ] > > myreg=[ /windowsupdate/, /trendmicro/,/w3b\.mydomain/,/mydomain/ ] > > > > こういう結果にする。 > > 52 3count > > 52に分類されているドメインのうちmyregのどれかに一致するのはこの2つでは? > 52 download.windowsupdate.com > 52 officescan-p.activeupdate.trendmicro.com:80 はい、一致するのはその二つです なので、これは m0 というカテゴリになおし、一致しなかった3つを 52のままにします。 > Rubyらしさを求めるならば、ぜひブロックを使いましょう。 > each、map、find_allあたりから慣れてみましょう。 > 各々の要素について処理を行ない新たな配列を返すmapはとても便利です!! はい、そうしたいのですがまだなかなか使いかたが把握できなくて。 ということで今回やってみたいなと思ったしだい > input.split(/\n/).map{|line| cat,data = line.split; [cat, > Regexp.new(Regexp.quote(data))]} > # => [["m0", /windowsupdate/], ["m0", /trendmicro/], ["m1", /w3b\.mydomain/], > ["m2", /mydomain/]] 成る程。 ブロック内の最後の式に置き換わるわけですね。 String が 配列に化けるのかぁ。。 > こういう質問をする場合は悩む前にとりあえず動くプログラムを書いてください。 > どういう形であれ動くプログラムがあれば意図は伝わります。 やってみます。
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:42458] Re: 多量の正規表現との効率的なマッチのアイデアを、、, rubikitch |
|---|---|
| Next by Date: | [ruby-list:42460] Re: 多量の正規表現との効率的なマッチのアイデアを、、, rubikitch |
| Previous by Thread: | [ruby-list:42458] Re: 多量の正規表現との効率的なマッチのアイデアを、、, rubikitch |
| Next by Thread: | [ruby-list:42460] Re: 多量の正規表現との効率的なマッチのアイデアを、、, rubikitch |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |