|
[ruby-list:42461] Re: 多量の正規表現との効率的なマッチのアイデアを、、: msg#00115lang.ruby.japanese
出沢です。 From: rubikitch <rubikitch-X+L+6nJQZ58h9ZMKESR00Q@xxxxxxxxxxxxxxxx> Subject: [ruby-list:42460] Re: 多量の正規表現との効率的なマッチのアイデアを、、 Date: Fri, 23 Jun 2006 12:29:49 +0900 > > 成る程。 > > ブロック内の最後の式に置き換わるわけですね。 > > String が 配列に化けるのかぁ。。 配列の 要素が String から 配列に化けるのかぁ でした。 やりたいことを作ってみました。 このなかの、 while input.gets cat,url=$_.chop.split myreg.each{|catreg| # このあたりが url =~ catreg[1] || next # もっと美しくならんか cat = catreg[0] # 馬鹿サーチではなく break # もっと効率良くならないか } # というのが、今回の「思い」です。 count[cat] = (count[cat]||=0)+1 end #!/bin/sh cat > testdata <<EOF 52 convctr.overture.com 52 ct1.shinobi.jp 52 download.jword.jp 52 download.windowsupdate.com 52 officescan-p.activeupdate.trendmicro.com:80 49 w3b.mydomain.co.jp 49 www.example.com EOF cat > myreg <<EOF m0 windowsupdate m0 trendmicro m1 w3b.mydomain m2 mydomain EOF ruby -e 'myreg=Array.new $/ = nil input=open("myreg") myreg=input.gets.split(/\n/).map{|line| cat,data = line.split; [cat, Regexp.new(Regexp.quote(data))] } input.close $/ = "\n" input = open("testdata") count=Hash.new while input.gets cat,url=$_.chop.split myreg.each{|catreg| url =~ catreg[1] || next cat = catreg[0] break } count[cat] = (count[cat]||=0)+1 end count.each{|k,v| print "#{k} #{v} count\n" } '
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:42460] Re: 多量の正規表現との効率的なマッチのアイデアを、、, rubikitch |
|---|---|
| Next by Date: | [ruby-list:42462] St0p waste y0ur m0ney n0w cheap pills same result, Sondra |
| Previous by Thread: | [ruby-list:42460] Re: 多量の正規表現との効率的なマッチのアイデアを、、, rubikitch |
| Next by Thread: | [ruby-list:42463] Re: 多量の正規表現との効率的なマッチのアイデアを、、, Momotaro Nishiumi |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |