|
vbsのNewで作るオブジェクトそのものは、秀丸マクロではできないですが、vbsのCre
ateObjectや、jsのnew ActiveXObjectで作るものは、秀丸マクロでできます。
調べてみたら、New RegExpの代わりに、CreateObject("VBScript.RegExp")でオブジ
ェクトを作る方法もあるようでした。
"VBScript.RegExp"であれば、秀丸マクロでも使えることになります。
試しに以下のようにしてみてできました。
$pattern="(abc|123)";
$text="xxxxabcxxxx";
#RegExp = createobject( "VBScript.RegExp" );
setpropstr #RegExp, "Pattern", $pattern;
#Matches = member( #RegExp,"Execute", $text );
#Match = getcollection( #Matches );
message "VBScript.RegExp"
+ "\nヒット位置:" + str(member(#Match,"FirstIndex"))
+ "\nヒット文字列:"+ member(#Match,"Value");
endmacro;
同じことをHmJreでやるとしたら、以下のようになります。
$pattern="(abc|123)";
$text="yy123yyyyy";
loaddll "HmJre.dll";
#n = dllfunc( "FindRegular", $pattern, $text, 0 );
#c = dllfunc( "GetLastMatchLength" );
message "HmJre"
+ "\nヒット位置:" + str(#n)
+ "\nヒット文字列:"+ midstr($text,#n,#c);
endmacro;
|
|