08/02/05 04:40:26 T5anPIsk0
>>172-174
GSUBS: // 文字列置換
// $$1 = 対象文字列
// $$2 = 検索文字列
// $$3 = 置換文字列
$$s = $$1;
while (true) {
##p = strstr($$s, $$2);
if (##p < 0) break;
$$r = $$r + leftstr($$s, ##p) + $$3;
$$s = midstr($$s, ##p + strlen($$2), 8192);
}
return $$r + $$s;
GSUBR: // HmJre.dll による正規表現置換(事前に loaddll "HmJre.dll"; が必要)
// $$1 = 対象文字列
// $$2 = 検索パターン
// $$3 = 置換文字列(後方参照不可)
// ##4 = 1:大文字小文字を区別する
$$f = leftstr("FindRegularNoCaseSense", 11 + (##4 == 0) * 11);
$$s = $$1;
while (true) {
##p = dllfunc($$f, $$2, $$s, 0);
if (##p < 0) break;
$$r = $$r + leftstr($$s, ##p) + $$3;
$$s = midstr($$s, ##p + dllfunc("GetLastMatchLength"), 8192);
}
if (##p == -2) message "正規表現のエラーです\n" + $$2;
return $$r + $$s;
HmJre.dll v1.90 から後方参照も可能になった。だれか後方参照対応の置換サブルーチンを書いてくれ