改行を含んだ正規表現検索
No.35070
おすぎ
さん 16/06/15 13:11
お世話になっています。
2つのキー文字に挟まれた文字列を検索したいと思っています。
ただし、その文字列の途中に改行が含まれている場合も含めてです。
例)次の2つの「あいうえお」を一括して検索したいと思っています。
AあいうえおB
Aあい
うえおB
(?\1)A(.+?\n?.+?)B では@しかヒットしません。
うまい検索方法があったら教えて下さい。
基本的な質問ですみません。
よろしくお願いいたします。
[
△
]
RE:35070 改行を含んだ正規表現検索
No.35071
秀まるお2
さん 16/06/15 15:18
テストしてみてうまくヒットせず、ソースコードのトレースなどしてみたら、
すみませんがバグのようでした。
大変失礼しました。
「.+」や「.+?」の処理で、検索対象文字列の途中に改行文字がある場合に特
別な高速化の処理をしてまして、それのせいでうまくヒットしてませんでした。
とりあえずの回避策として、
(?\1)A(.+?(\n?).+?)B
か、または、
(?\1)A(.+?\n?(.+?))B
のように余計な括弧を入れてやると、特別な高速化処理が回避されてうまく動
作するようではあります。
どっちにしてもHmJre.dll側を修正して、次の秀丸エディタのβ版に添付させ
ていただきます。
[
△
]
RE:35071 改行を含んだ正規表現検索
No.35072
おすぎ
さん 16/06/15 16:11
バグだったんですね。
それなら良かったです。
自分の正規表現の理解がおかしくなったかと思いました(笑)
回避策、さっそく使用します。
ありがとうございました。
[
△
]