#4332

匿名

これは解釈の問題かもしれません。.+? だったら、最小の文字列と一致するので
問題ないのですが、.+ だと最大長の文字列と一致しなければならないので、選択範囲を
超えて一致する方が正しいともいえますね。

ShuHei さんも、不具合とだと認識しているみたいですし、
V7では再現しないとのことです。
もしこれが不具合ではなく、そういう仕様だとすれば、逆にV7は不具合をかかえていると
いうことでしょうか?
すくなくとも、V6.00.4とV7のどちらかが不具合ということになります。

EmEditorにおける「選択範囲のみ」とは、何をさすのでしょう?
選択範囲の最終行の選択範囲外もマッチングの対象になっていて、そのマッチングを元に
選択範囲のみが置換されるというのは、
不自然すぎると思いますよ。

一般的には、選択範囲だけのテキストがあると解釈して、その範囲内だけの文字列に、正
規表現を適用するのが、普通というかわかりやすいのではないでしょうか?つまり、選択
範囲のみをコピーして、NewFile()して、貼り付けしてすべて置換して、すべて選択して、
元のドキュメントの選択範囲に貼り付けと同じ動作。

そういう意味においては、「^」も、選択範囲のみでは、選択範囲の先頭にもマッチした
方が分かりやすいし、自然と思います。

おそらく、これは、
http://jp.emeditor.com/modules/newbb/viewtopic.php?topic_id=147&forum=5

の最後の投稿とものすごく密接にかかわっていると思います。

EmEditorは、選択範囲に対する扱い方が、テキスト全体の文脈の中の一部であるというこ
とで、正規表現自体は、選択範囲に関係なくテキスト全体として評価して、置換対象は、
選択範囲のみであるという、仕様なのだということで良いのでしょうか。
しかし、そうすると、V7は明らかに不具合ですよね。

とにかく仕様をハッキリさせてほしいですね。
そういう仕様なら仕様ということで諦めて、自分が期待する動作は、マクロで全部することにすれば、特に問題はありません。