QuickSearch関数の使い方

SkRegExp には QuickSearch という関数があります。
 
この関数は、正規表現の先頭がリテラルのときに前処理で使っています。
 
たとえば、abc* と言う正規表現の場合、文字列が ab で始まらないとマッチしません。そこで、正規表現エンジンを起動する前に、QuickSearch で検索して、ab があるかどうかをチェックしています。
 
今のところ使っているのはこれだけなんですが、他にも、正規表現がリテラル文字だけの場合、正規表現エンジンを起動せずに、QuickSeach で検索すれば高速に処理することもできます。まあ、この辺りはおいおい対応します。
 
SkRegExp の QuickSearch は大文字小文字を区別しない、全角半角を区別しない、ひらがなカタカナを区別しないと言った SkRegExp のオプションが使えますので試しに使ってみてください。
 
構文

function QuickSearch(AText: PWideChar; ATextLen: Integer;
  APattern: PWideChar; APatternLen: Integer; AOptions: TRECompareOptions): PWideChar; overload;

 
パラメータ

AText: 検索対象の文字列へのポインタ
ATextLen: 検索対象の文字列の長さ
APattern: 検索文字列へのポインタ
APatternLen: 検索文字列の長さ
AOptions: 検索オプション

検索オプション
coIgnoreCase: 大文字小文字を区別しない
coIgnoreWidth: 全角半角を区別しない
coIgnoreKana: ひらがなカタカナを区別しない

返り値

検索文字列が見つかったときはその文字列へのポインタを、見つからなければ nil を返す。

 

 
P := QuickSearch('あいうえおかきくけこ', 'うえ', [coIgnoreKana, coIgnoreCase]);

コメントを残す

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