行頭・行末への文字の挿入について

投稿者: wataru2 声3 投稿

たとえば、以下のようなテキストがあった場合、あ行か行の行頭に「A」を挿入したいと考えます。 あいうえお かきくけこ さしすせそ たちつてと そこで、あ行か行を選択した状態で置換ダイアログボックスを開き、検索する文字列に「^」、置換後の文字列に「A」、‘正規表現を使用する’、‘選択した範囲のみ’にチェックを入れて置換を行います。 期待する結果は以下の通りなのですが、実際には異なる結果になってしまいます。 【期待する結果】 Aあいうえお Aかきくけこ さしすせそ たちつてと 【実際の結果】 Aあいうえお Aかきくけこ Aさしすせそ たちつてと (さ行の行頭にまで「A」が挿入されてしまう) ちなみに行末への挿入(検索する文字列を「$」にして置換)でも期待通りの結果を得られません。 確かEmEditorのV6までは期待する結果になっていたと思うのですが、V7以降は異なる結果になってしまいます。 (旧バージョンがすでに手元にないため確かなことは言えないのですが・・・) どちらの動作が正規表現として正しいものなのでしょうか? そもそもこのような使い方は推奨されないものなのでしょうか? それともEmEditorの不具合(?)なのでしょうか? ご意見等、よろしくお願いいたします。
wataruさんは書きました: たとえば、以下のようなテキストがあった場合、あ行か行の行頭に「A」を挿入したいと考えます。 あいうえお かきくけこ さしすせそ たちつてと そこで、あ行か行を選択した状態で置換ダイアログボックスを開き、検索する文字列に「^」、置換後の文字列に「A」、‘正規表現を使用する’、‘選択した範囲のみ’にチェックを入れて置換を行います。 期待する結果は以下の通りなのですが、実際には異なる結果になってしまいます。 【期待する結果】 Aあいうえお Aかきくけこ さしすせそ たちつてと 【実際の結果】 Aあいうえお Aかきくけこ Aさしすせそ たちつてと (さ行の行頭にまで「A」が挿入されてしまう) ちなみに行末への挿入(検索する文字列を「$」にして置換)でも期待通りの結果を得られません。 確かEmEditorのV6までは期待する結果になっていたと思うのですが、V7以降は異なる結果になってしまいます。 (旧バージョンがすでに手元にないため確かなことは言えないのですが・・・) どちらの動作が正規表現として正しいものなのでしょうか? そもそもこのような使い方は推奨されないものなのでしょうか? それともEmEditorの不具合(?)なのでしょうか? ご意見等、よろしくお願いいたします。
確かに Version 6 では、上の【期待する結果】になることを確認しました。しかし、これはエディタの仕様といえないでしょうか? Visual Studio 2008 では、上の【実際の結果】と同じ動作になりました。選択の終了位置は、3 行目の先頭文字の左にあると考えると、3行目の行頭も選択に含まれると考えることができます。上2行の行頭だけを変換したい場合は、2行目の行末までを選択して置換すれば問題がなくなります。
ご回答ありがとうございます。 >選択の終了位置は、3 行目の先頭文字の左にあると考えると、3行目の行頭も選択に含まれると考えることができます。 確かにこのように考えれば納得できますね。 ただ、私個人としては Version 6の時の動作の方がより直感的だと思うのですが、 Version 7から仕様が変わったことに関して、何か理由があるのでしょうか? もし実装上の制約等、決定的な理由がないようであれば、要望としてあげさせていただこうと思います。 (その際は、改めて要望掲示板の方へ掲載いたします)

このトピックの投稿: 3