[#42454] 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...>

出沢です

22 messages 2006/06/22
[#42455] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/22

From: しん <dezawa@aliadne.net>

[#42456] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42458] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <dezawa@aliadne.net>

[#42459] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42460] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <dezawa@aliadne.net>

[#42461] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です。

[ruby-list:42456] Re: 多量の正規表現との効率的なマッチのアイデアを、、

From: しん <dezawa@...>
Date: 2006-06-23 01:05:50 UTC
List: ruby-list #42456
出沢です

ありがとうございます。
関わりあるフィールドだけ抜き出します。

こういうデータで
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

何もしなければこういう結果を出す。
52 5count
49 2count


そこで、たとえばこういう情報を追加して
mycat=[ "m0"           ,  "m0"       ,"m1"         ,"m2" ]
myreg=[ /windowsupdate/, /trendmicro/,/w3b\.mydomain/,/mydomain/ ]

こういう結果にする。
52 3count
49 1count
m0 2count
m1 1count

w3b.mydomain.co.jp は m1 にも m2 にもマッチするが、
m1の方が先に定義されているのでこちらを採る。

ついでに、、、
m0 windowsupdate
m0 trendmicro
m1 w3b.mydomain
m2 mydomain

という入力データから正規表現のかたまりを作るには、
while gets でくくってこつこつ、
  f=stlip して myreg << Reg.new(f[1]).gsub(/\./,"\\./).gsub(/\//,"\\/")
するしか無いですか?

In This Thread