SkRegExp version 1.0.18β版公開

SkRegExp version 1.0.18を公開しました。

今回のバージョンの狙いは最適化の更なる追求です。

今注力している最適化は、正規表現の先頭がリテラルで始まるとき、そして、正規表現全体がリテラルのときです。

以前ボツにした QuickSeach をブラッシュアップしてこれらの処理に使うようにしました。

「正規表現の先頭がリテラルで始まる」というのは。たとえば次のような正規表現です。

th(is|at|e|ese)

この正規表現がマッチするには、「th」で始まる箇所でないと決してマッチしません。

したがって、正規表現エンジンを起動する前に、まず「th」で始まる箇所を QuickSeach で検索して、その箇所でのみ正規表現エンジンを起動するようにしています。

また、「正規表現全体がリテラル」と言うのは、次のような正規表現です。

that

このようなメタ文字を含まない正規表現の場合、エンジンを起動するのはムダです。したがって、QuickSeach のみでマッチ位置を探します。

ちなみに、QuickSeach を実現しているのは、TREQuickSeach と言うクラスですが、以前の QuickSeach 関数と異なり、TSkRegExp ありきの実装になっていますので汎用性はありません。

コメントを残す

メールアドレスが公開されることはありません。