SkRegExp version 1.3.2 公開

SkRegExp version 1.3.2 を公開しました。

TREQuickSeach で2文字のパターンの検索時、対象テキストの長さを超えてアクセスするバグを修正しました。

このクラスは名前からおわかりの通り、QuickSeachを実装するクラスです。

SkRegExp 内部では正規表現の最適化で使用しています。

正規表現パターン中にリテラル文字があるときは、スグに正規表現エンジンを起動するのではなく、検索対象文字列内にそのリテラル文字があるかを検索します。

リテラル文字を見つけたら正規表現エンジンを起動します。みつからなかったらそのまま「マッチしない」と結果を返します。

TREQuickSeachはSkRegExpの速さの秘密の一端です。

“SkRegExp version 1.3.2 公開” への4件の返信

  1. 大変申し訳ないのですが、ひとつ教えて頂けないでしょうか。
    正規表現を用いた置換をしたいのですが使い方がよくわかりません。
    具体的には、「AbCdE.0123」を「0123」に変えたいのですが、
    s := ‘AbCdE.0123’;
    s:= RegReplace(‘[a-z A-Z .]*’, s,’-‘,[]);
    ShowMessage(s);
    とすると、
    [a-z A-Z .]*0123
    が返ってきます。
    どのように使わなければならないのでしょうか。
    すみませんが教えて頂けると助かります。

  2. 上記、一部間違えました。下記に修正します。
    s:= RegReplace(‘[a-z A-Z .]*’, s,’-‘,[]);

    s:= RegReplace(‘[a-z A-Z .]*’, s,”,[]);

  3. 竹下さん、どうも。
    RegReplace グローバル関数の代わりに、
    TSkRegExp.RegReplace クラス関数を使ってください。
    RegReplace グローバル関数もこのクラス関数を呼び出しているのですが、渡すべきパラメータが間違っているので。
    このバグは近日中に修正します。

コメントを残す

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