#6759
Yutaka Emura
キーマスター

wataruさんは書きました:
たとえば、以下のようなテキストがあった場合、あ行か行の行頭に「A」を挿入したいと考えます。

あいうえお
かきくけこ
さしすせそ
たちつてと

そこで、あ行か行を選択した状態で置換ダイアログボックスを開き、検索する文字列に「^」、置換後の文字列に「A」、‘正規表現を使用する’、‘選択した範囲のみ’にチェックを入れて置換を行います。
期待する結果は以下の通りなのですが、実際には異なる結果になってしまいます。

【期待する結果】
Aあいうえお
Aかきくけこ
さしすせそ
たちつてと

【実際の結果】
Aあいうえお
Aかきくけこ
Aさしすせそ
たちつてと
(さ行の行頭にまで「A」が挿入されてしまう)

ちなみに行末への挿入(検索する文字列を「$」にして置換)でも期待通りの結果を得られません。
確かEmEditorのV6までは期待する結果になっていたと思うのですが、V7以降は異なる結果になってしまいます。
(旧バージョンがすでに手元にないため確かなことは言えないのですが・・・)

どちらの動作が正規表現として正しいものなのでしょうか?
そもそもこのような使い方は推奨されないものなのでしょうか?
それともEmEditorの不具合(?)なのでしょうか?

ご意見等、よろしくお願いいたします。

確かに Version 6 では、上の【期待する結果】になることを確認しました。しかし、これはエディタの仕様といえないでしょうか? Visual Studio 2008 では、上の【実際の結果】と同じ動作になりました。選択の終了位置は、3 行目の先頭文字の左にあると考えると、3行目の行頭も選択に含まれると考えることができます。上2行の行頭だけを変換したい場合は、2行目の行末までを選択して置換すれば問題がなくなります。