1 件の投稿を表示中 (合計 3 個)
  • 作成者
    投稿
  • #6758
    wataru
    メンバー

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

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

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

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

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

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

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

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

    #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行目の行末までを選択して置換すれば問題がなくなります。

    #6768
    wataru
    メンバー

    ご回答ありがとうございます。

    >選択の終了位置は、3 行目の先頭文字の左にあると考えると、3行目の行頭も選択に含まれると考えることができます。

    確かにこのように考えれば納得できますね。
    ただ、私個人としては Version 6の時の動作の方がより直感的だと思うのですが、 Version 7から仕様が変わったことに関して、何か理由があるのでしょうか?

    もし実装上の制約等、決定的な理由がないようであれば、要望としてあげさせていただこうと思います。
    (その際は、改めて要望掲示板の方へ掲載いたします)

1 件の投稿を表示中 (合計 3 個)
  • このトピックに返信するにはログインしてください。