hmjre.dll タグ指定出来ない括弧No.05293
h-tom さん 10/03/08 00:03
 

h-tom です。

タグ指定出来ない括弧+ヒットした扱いにするタグ指定を使った場合、
マッチ位置が、期待したようになりません。(hmjre.dll Ver.3.12)

正規表現:(aa(?:bb|cc))(dd)(?\1)

//対象文字 ここから
 aabbdd
 aaccdd
//対象文字 ここまで

期待したマッチ範囲は、"( )"で囲った部分(aabb、aacc)だったのですが、
 (aabb)dd
 (aacc)dd
 
実際は、
 aa(bb)dd
 aa(cc)dd
となります。(bb、ccにマッチする)

BregIf.dll+(bregexp.dll/bregonig.dll)、hmonig.dllだと、期待した位置に
マッチします。

[ ]
RE:05293 hmjre.dll タグ指定出来ない括弧No.05295
秀まるお さん 10/03/08 09:14
 
 調べてみたらたしかにおかしいようでした。

 言い訳をさせていただくと、

 (?:_____)

 というのを(____)の中で使うというのは、僕としては想定外でした。

 (?:___)というのは、一番外側で使った時に、その内側にある(____)部分にタ
グを付ける目的の物なので、(____)の中に書いたとしても意味が無いです。

 (釈迦に説法になってしまったらすみませんが)

 ちょっと想定外だったがために、内部の処理で矛盾が起きておかしくなってし
まってました。
------言い訳終了-------------------


 ということでまた修正させていただきます。

[ ]
RE:05295 hmjre.dll タグ指定出来ない括弧No.05299
秀まるお さん 10/03/08 09:50
 
 このバグ調査をしてたら別のバグを見つけてしまいました。

  (?:aa(?:(bb|cc)))(dd)(?\1)

 と書いた時に、「aabbdd」中の"bb"にヒットしないバグを見つけてしまいまし
た。

 これまた修正させていただきます。

[ ]