From: "K.Kosako" Date: 2002-03-07T19:47:30+09:00 Subject: [ruby-dev:16261] Re: [Oni Guruma] look behind Tanaka Akiraさんのから > look-behind の使用頻度は低いので、速度はあんまり問題にならないような気 > がします。 > > それでも気になる場合でも、やりかたはいろいろある気もします。 > > s++ を s+= step に... というあたりは適当に(C の)マクロでコードを複製し > て、コンパイラの最適化をちょっと期待すれば速度は落ちない実装が可能でしょ > う。 複製ということはひょっとして、前向き用と後ろ向き用の処理関数を それぞれ用意するということでしょうか? うーん、可能でしょうけど、今のマッチング関数は900行あるので躊躇します。 もし、そのようなことをする正規表現ライブラリが他にないのなら、 やれば面白いだろうと思いますが。 > いずれにしても engine からの文字列のアクセスを抽象化してあっていろんな > アクセス法を(静的に)切替えられればどうにでもなるという気がしますが... > > multibyte encoding の解釈部分しか切替えられないんでしょうか? ismb(enc,c), mblen(enc,c)、文字のクラスを取得するマクロ等を Ruby M17Nの場合と、そうでない場合で切り替えられるだけです。 21世紀にわざわざ作るような代物ではないような気もします。 -- 小迫@ソフネック 渋谷区恵比寿1-15-1