#5341

Yutaka Emura
キーマスター

Yutakaさんは書きました:

yunokiさんは書きました:
ファイルから置換で不具合報告です。

以前のテスト内容:
http://jp.emeditor.com/modules/newbb/viewtopic.php?topic_id=398&forum=12&post_id=1847#forumpost1847

以前よりはよくなっていますが、やはり置換結果に満足いきません。

> 検索する文字列に「.*」
> 置換後の文字列に「1」

こちらの想定する結果では、各行に「1」と書かれた状態になると思っているのですが、最後の行のみ「1」で,、それよりまえの行は「11」になります。

改行コードも変えて保存してみましたが、改善しませんでした。

確かにご指摘の動作になることは、私もテストをしていてわかっていたのですが、他のエディタでも、結果は 「11」となる場合が多かったのが実情です。たくさんのエディタで調べたわけではないのですが、いかがでしょうか? 「.*」を置換した結果は、置換の実装の違いによって異なり、特に明確に決まっていないように思いますが、いかがでしょうか? 実は、EmEditor の通常の置換や、「変更したファイルを開いたままにする」がチェックされている場合には、結果は「1」になります。この結果の違いは、置換の動作の違いによるもので、今回、無理に結果を合わせるようなことは行いませんでした。「.*」を置換するという使い方は、かなり特殊な使い方ではないかな、と思います。このあたりは厳密に行おうとすると、非常に難しい部分があります。

その後、JavaScript でも調べてみたのですが、以下のコードを書いて、EmEditor で実行すると、

s = “あ nあnn”;
alert( s.replace(/(.*)/gi,”1″) );

「11」という結果になります。すると、こちらに合わせるほうがいいのではないかと思いました。でも、これも1つの考えにすぎないので、何か他にご意見がありましたら、書いていただけると幸いです