HMJRE_LOAD

使い方:   #n = dllfunc("HMJRE_LOAD", $s1);
説明: 秀丸エディタ付属の正規表現ライブラリ HMJRE.DLL をロードします。
引数:
$s1 : HMJRE.DLL のパス名
フォルダ名を省略するか、空文字列を指定すると、 OS標準のDLL検索方法により HMJRE.DLL を探します。
返り値: DLL のロードに成功した場合は 1、失敗した場合は 0 を返します。
例:
if (!dllfunc("HMJRE_LOAD", "HMJRE.DLL")) {
    message "HMJRE.DLL が見つかりません";
    freedll;
    endmacro;
}
// ...(省略)
#r = dllfunc("HMJRE_FREE"); // 使い終わったら HMJRE_FREE() で開放


HMJRE_FREE

使い方:   #n = dllfunc("HMJRE_FREE");
説明: HMJRE_LOAD() でロードした HMJRE.DLL を アンロードします。
引数: (なし)
返り値: DLL のアンロードに成功した場合は 1、失敗した場合は 0 を返します。
例: (HMJRE_LOAD() の例を参照して下さい)


HMJRE_GET_VERSION

使い方:   $s = dllfuncstr("HMJRE_GET_VERSION");
説明: ロードした HMJRE.DLL のバージョン情報を返します。
引数: (なし)
返り値: HMJRE.DLL の JreGetVersion() によって得られるバージョン番号を "X.XX"の形式で表現した文字列
例: (省略)


HMJRE_MATCH

使い方:   $pos = dllfuncstr("HMJRE_MATCH", $ptn, $str, #offset, #flags, #fuzzy);
説明: 与えられた正規表現・あいまい検索パターンに一致する 部分文字列の範囲を返します。
なお、パターン中の丸括弧に一致する部分は HMJRE_GET_TAG_POSITION() で 取得することができます。
引数:
$ptn : 正規表現パターン文字列
$str : 検索対象文字列
#offset : $str中の検索開始位置(バイト単位)
#flags : あいまい検索フラグ
以下の数値の和(何も指定しない場合は0)を指定します。 (#fuzzy == -1 の場合は無視されます)
    1 半角英数字の大文字/小文字を区別しない
    4 半角/全角を区別しない
    8 ひらがなとカタカナを区別しない
    16 大きい「あ」と小さい「ぁ」を区別しない
    32 濁音、半濁音を区別しない。 「は」、「ば」、「ぱ」を同一視する
    64 かなの「ー」と英数の「−」を同一視する
    128 空白/タブ文字を無視する
    256 改行を無視する
#fuzzy : 検索文字列が正規表現の式になっている場合は1、
検索文字列が正規表現の式になっていないが、 正規表現で検索したい場合は2、
検索文字列が正規表現の式になってなくて、 検索自体も普通にやりたい場合は0(あいまい検索の一部が無効になります)、
あいまい検索を一切使用せずに正規表現で検索したい場合は-1を指定します。
返り値: $str 中の $ptn にマッチした範囲を表す文字列。
書式は以下の通り。

    head:len

    head: マッチした範囲の先頭位置(0 から数えます)
    len: マッチした範囲のバイト数

パターンに一致する部分がなかったときは "" を返します。
例:
$str = "Name:Masaki Family:Sugi\nura Age:39";

//	半角英数字の大文字・小文字を同一視、半角・全角を同一視、改行を無視
$pos = dllfuncstr("HMJRE_MATCH", "Name:([A-Z]+) Family:([A-Z]+) Age:([0-9]+)", $str, 0, 1 + 4 + 256, 1);
if ($pos != "") {
    // 見つかった文字列を表示
    message dllfuncstr("HMJRE_GET_MATCH_STRING", $str, $pos);

    #a = 1;
    while (#a <= 3)
    {
        // タグつき正規表現でマッチした部分マッチの結果を返す
        // #n1: タグの番号(1〜9)
        // return: マッチした範囲("pos:length")
        // マッチした範囲がない、またはエラーの場合は空文字列
        $pos = dllfuncstr("HMJRE_GET_TAG_POSITION", #a);

        $s = dllfuncstr("HMJRE_GET_MATCH_STRING", $str, $pos);

        message "\"" + $s + "\"";

        #a = #a + 1;
    }
}


HMJRE_GET_TAG_POSITION

使い方:   $s = dllfuncstr("HMJRE_GET_TAG_POSITION", #tag);
説明: HMJRE_MATCH() でタグつき正規表現を使用した場合、 指定した番号のタグにマッチした範囲を返します。
引数:
#tag : タグ番号(1〜9)
返り値: 指定した番号のタグにマッチした範囲 (書式はHMJRE_MATCH() の戻り値と同じ)
例: (HMJRE_MATCH() の例を参照して下さい)


HMJRE_GET_MATCH_STRING

使い方:   $s = dllfuncstr("HMJRE_GET_MATCH_STRING", $str, $pos);
説明: $str 中の $pos で指定された範囲の文字列を返します。
引数:
$str : 対象文字列
$pos : HMJRE_MATCH()HMJRE_GET_TAG_POSITION() から返された範囲を表す文字列("pos:length")
返り値: $str から抜き出された文字列
例: (HMJRE_MATCH() の例を参照して下さい)


HMJRE_FIND_REGULAR

使い方:   #n = dllfunc("HMJRE_FIND_REGULAR", $ptn, $str, #offset);
説明: HMJRE.DLL の FindRegular() 関数を呼び出します。
引数:
$ptn : 検索文字列
$str : 対象文字列
#offset : $str中の検索開始位置(バイト単位)
返り値: ヒットした場合は桁位置(0以上の値)を返します。 ヒットしなかった場合は-1を返します。 正規表現の解釈その他でエラーが起きた場合は-2を返します。
例:
$target = "Name:Masaki Family:Sugiura Age:39";

#pos = dllfunc("HMJRE_FIND_REGULAR", "Name:([A-Za-z]+) Family:([A-Za-z]+) Age:([0-9]+)", $target, 0);
message str(#pos);

#length = dllfunc("HMJRE_GET_LAST_MATCH_LENGTH");
message midstr($target, #pos, #length);	// $target 全体がマッチ

#a = 1;
while (#a <= 3)
{
    #pos = dllfunc("HMJRE_GET_LAST_MATCH_TAG_POSITION", #a);
    #length = dllfunc("HMJRE_GET_LAST_MATCH_TAG_LENGTH", #a);
    message midstr($target, #pos, #length); //  "Masaki", "Sugiura", "39"
    #a = #a + 1;
}


HMJRE_FIND_REGULAR_NO_CASE_SENSE

使い方:   #n = dllfunc("HMJRE_FIND_REGULAR_NO_CASE_SENSE", $ptn, $str, #offset);
説明: HMJRE.DLL の FindRegularNoCaseSense() 関数を呼び出します。
引数:
$ptn : 検索文字列
$str : 対象文字列
#offset : $str中の検索開始位置(バイト単位)
返り値: ヒットした場合は桁位置(0以上の値)を返します。 ヒットしなかった場合は-1を返します。 正規表現の解釈その他でエラーが起きた場合は-2を返します。
例: (省略)


HMJRE_REPLACE_REGULAR

使い方:   $s = dllfuncstr("HMJRE_REPLACE_REGULAR", $ptn, $str, #offset, $repl, #replaceall);
説明: HMJRE.DLL の ReplaceRegular() 関数を呼び出します。
引数:
$ptn : 検索文字列
$str : 対象文字列
#offset : $str中の検索開始位置(バイト単位)
$repl : 置換文字列
#replaceall : 0 の場合最初にマッチした文字列のみを置換、 1 の場合マッチした全ての文字列を置換
返り値: 何らかの置換が発生した場合は置換後の全体の文字列、 何も置換されなかった場合は空文字列を返します。
例:
$target = "Name:Masaki Family:Sugiura Age:39";

$jpn = dllfuncstr("HMJRE_REPLACE_REGULAR", "Name:([A-Za-z]+) Family:([A-Za-z]+) Age:([0-9]+)", $target, 0, "姓: \\1 名: \\2 年齢: \\3", 1);
message $jpn;


HMJRE_REPLACE_REGULAR_NO_CASE_SENSE

使い方:   $s = dllfuncstr("HMJRE_REPLACE_REGULAR_NO_CASE_SENSE", $ptn, $str, #offset, $repl, #replaceall);
説明: HMJRE.DLL の ReplaceRegularNoCaseSense() 関数を呼び出します。
引数:
$ptn : 検索文字列
$str : 対象文字列
#offset : $str中の検索開始位置(バイト単位)
$repl : 置換文字列
#replaceall : 0 の場合最初にマッチした文字列のみを置換、 1 の場合マッチした全ての文字列を置換
返り値: 何らかの置換が発生した場合は置換後の全体の文字列、 何も置換されなかった場合は空文字列を返します。
例: (省略)


HMJRE_GET_LAST_MATCH_LENGTH

使い方:   #len = dllfunc("HMJRE_GET_LAST_MATCH_LENGTH");
説明: HMJRE_FIND_REGULAR(), HMJRE_FIND_REGULAR_NO_CASE_SENSE() で最後にマッチした文字列の長さを返します。
引数: (なし)
返り値: 直前の HMJRE_FIND_REGULAR(), HMJRE_FIND_REGULAR_NO_CASE_SENSE() でマッチした範囲の長さ(バイト単位)
例: (HMJRE_FIND_REGULAR() の例を参照して下さい。)


HMJRE_LAST_MATCH_TAG_POSITION

使い方:   #pos = dllfunc("HMJRE_GET_LAST_MATCH_TAG_POSITION", #tag);
説明: HMJRE_FIND_REGULAR(), HMJRE_FIND_REGULAR_NO_CASE_SENSE() でタグつき正規表現を用いた場合、 指定した番号のタグにマッチした文字列の位置を返します。
引数:
#tag : タグ番号(1〜9)
返り値: 直前の HMJRE_FIND_REGULAR(), HMJRE_FIND_REGULAR_NO_CASE_SENSE() で指定番号のタグにマッチした文字列の先頭位置
例: (HMJRE_FIND_REGULAR() の例を参照して下さい。)


HMJRE_LAST_MATCH_TAG_LENGTH

使い方:   #len = dllfunc("HMJRE_GET_LAST_MATCH_TAG_LENGTH", #tag);
説明: HMJRE_FIND_REGULAR(), HMJRE_FIND_REGULAR_NO_CASE_SENSE() でタグつき正規表現を用いた場合、 指定した番号のタグにマッチした文字列の長さを返します。
引数:
#tag : タグ番号(1〜9)
返り値: 直前の HMJRE_FIND_REGULAR(), HMJRE_FIND_REGULAR_NO_CASE_SENSE() で指定番号のタグにマッチした文字列の長さ(バイト単位)
例: (HMJRE_FIND_REGULAR() の例を参照して下さい。)


HMJRE_ENV_CHANGED

使い方:   #ret = dllfunc("HMJRE_ENV_CHANGED");
説明: あいまい検索関係の設定をレジストリから読み込み直しします。 マクロからあいまい検索の設定をいじりたい場合には、 まずはHmJre.dll用のレジストリを適当に書き換えてから この関数を呼んでください。
引数: (なし)
返り値: HMJRE.DLL の EnvChanged() 関数の戻り値。
例: (省略)


HMJRE_OPTION_DIALOG

使い方:   #n = dllfunc("HMJRE_OPTION_DIALOG", #hwnd, #flags);
説明: あいまい検索のためのオプションを指定するダイアログを表示します。
引数:
#hwnd : 親ウィンドウのウィンドウハンドル
#flags : 無効状態にしたい設定項目の指定 (指定方法はHMJRE_MATCH() の 第4引数と同じ)
返り値: OKボタンを押して設定を完了した場合は1、 キャンセルボタンを押した場合は0を返します。
例: (省略)