|
お世話になっております。さて、正規表現での検索で前方/後方一致を入れ子にする
とうまくマッチしない現象が起きました。
まず、検索対象の文字列を、
ABCDEFGHIJKLMN
とします。そして、
CDEFGH
にマッチさせることを意図して、以下のパターンで検索を行いました。
1. (C)(D)(\c*)(H)
2. (C)(D(?=E))(\c*)(H)
3. (C(?=D))(D)(\c*)(H)
4. (C(?=D))(D(?=E))(\c*)(H)
5. (C)(D)(\c*)((?<=G)H)
6. (C)(D(?=E))(\c*)((?<=G)H)
7. (C(?=D))(D)(\c*)((?<=G)H)
8. (C(?=D))(D(?=E))(\c*)((?<=G)H)
9. (C)(D)(\c*)((?<=G(?=H))H)
10. (C)(D(?=E))(\c*)((?<=G(?=H))H)
11. (C(?=D))(D)(\c*)((?<=G(?=H))H)
12. (C(?=D))(D(?=E))(\c*)((?<=G(?=H))H)
結果は、1〜11までは正常にマッチしましたが、12だけは
H
のみにマッチしてしまいました。右側の入れ子部分ではなく左側の当然マッチするは
ずのパターンの組み合わせで発生しています。
環境は、
秀丸エディタ : v8.91 Float x64
秀丸パブリッシャー : v5.02
OS : Windows 10 Pro x64 1809
です。
|
|