HMJRE.DLL の誤動作No.01532
Makkie さん 03/06/11 09:02
 
自前の正規表現DLLの今後の発展に期待します。

早速ですが、JRE32.DLL では正常動作するあるマクロが HMJRE.DLL で
は誤動作します。

問題となるケースですが、複雑な正規表現を書くと JRE32.DLL で「括
弧やORが多すぎます」というエラーになりますが、そのエラーになる
直前のぎりぎりのところで動いているようなケースがまずい感じです。

具体的には

searchdown "A(B|C(D|(E|F)(G|H(I|J)K)|L(M|N|O)P|Q))", regular;

  ・英大文字はキャラクタ/メタキャラクタの列を示す
  ・正規表現全体は半角換算で250文字程度

というヤツがJRE32.DLL では正常動作し、HMJRE.DLL では誤動作しまし
た。よろしくお願いします。

なお、括弧やORの数の制限値は、JRE32.DLL の3倍程度に拡張して欲
しいです。また制限値はどこかに明記してほしいです。

蛇足ですが、JRE32.DLL のバッファーオーバーフローで秀丸が死ぬとい
う以前からある問題は(当然のことながら)HMJRE.DLL では発生しませ
んでした。

[ ]
RE:01532 HMJRE.DLL の誤動作No.01542
秀まるお さん 03/06/11 12:44
 
 (xxx|bbb)のような表現を使ってさらにその後ろに何か文字列を指定すると、
現状全滅です。

> なお、括弧やORの数の制限値は、JRE32.DLL の3倍程度に拡張して欲
> しいです。また制限値はどこかに明記してほしいです。

 カッコのネストは現状で32個までにしてますが、いくらでも増やせます。

 (((((...)))))の深さの意味ですが…。

 他には制限は無いと思います。

 あいまい検索もなんとか出来た所で、さらに、正規表現onの時に単語検索が出
来ない制限も解除します。

[ ]