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"にヒットしないバグを見つけてしまいまし
た。
これまた修正させていただきます。
[
△
]