Naoki Takezoe
takez****@aa*****
2005年 11月 8日 (火) 06:18:45 JST
竹添です。 正規表現の件に関しては、可能かもしれないと思い、検証してから 回答しようと思っていたのですが、 あき wrote: > あきです。 > > >>ということで、試しにsearchプラグイン(?)の改良版で試してみました。 >>速度が低下することもなく、良好に動作しています。 >> >>キーワード検索結果を色分け表示させるパッチ >>http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F235 >> >>後はページの自動リンクでしょうか? >>それとも、それ以外にもまだ有りますか? >>あまり多いと対応するのが億劫になりそうですが…。 すべては把握できていないのですが、ページの自動リンク以外にも 修正すべき部分があったと思います。 > 難しいですねぇ。(>_<) > 何やら高速化の為のおまじないみたいなことをしているらしくて…。 > lib/Wiki/Keyword.pmのload_keywords()関数で$self->{regex} > に詰め込んでいるものがまるで魔法のようです。 > 私にはまるで『ちんぷんかんぷん』です。quotemeta? > 複数のキーワードと高速にマッチさせる手法でしょうか? quotemetaは正規表現に文字列を組み込む場合に 正規表現のメタ文字をエスケープする関数ですね。 > 確かに、ここを分解して一つ一つをサーチすると遅くなってしまいそうです。 > 逆にexists_keyword()関数の「if($str =~ /$regex/){ … }」の部分は > そのままにて、このif()文に入った時だけ、詳細なチェックをするのは > いかがでしょう? > マッチした行しか詳細チェックの対象になりませんので、速度的なロスは > 最小限で済みそうな気がしますが…。 > 表示しようとしているページだけが対象ですよね? 自動リンクに関してはそれでよさそうな気がします。 まずは直さなければいけないところを特定してからですね。 ちなみに4.0では文字コードがUTF-8になるので、 こういった対応は不要になるかと思います。 -- Naoki Takezoe <takez****@aa*****>