|
|
このあたりは、少々ややこしい話になってしまうので、先に最後のご質問からお答えいたします。
実際の置換処理時に使われる文字コードは、内部的にShift-JISとなります。
したがって、他の文字コードよりShift-JISに変換された時点で、改行文字に「\r\n」が使われているか「\n」が使われているかが問題となります。
すなわち、
デフォルトの文字コードには影響されない
というのが答えになるかと思います。
もう一つは改行文字そのものに関してですが、まず前提として、マルチラインモードの「$」は挙動として、「改行文字を除いた一行」ということになります。
すなわち、
aaaaa\r\n
という文字列を、「aaaaa$」で検索した場合、「aaaaa」の部分にマッチして「\r\n」は無視されるということになります。つまり、上記のような設定で、置換文字列を空にして置換すると、改行文字の羅列が残るということです。
また、先ほど「実際の置換処理の挙動には影響しません」と書きましたが、マルチラインモードでは「影響します」が答えになります。訂正してお詫びいたします。
すなわち、
aaaaa\r\n
という文字列を、デフォルト改行文字が「\n」の設定の上で「aaaaa$」で検索した場合、「\n」を除いた一行は「aaaaa\r」になるため、検索されないということになります。「aaaaa\r$」ならば検索されます。
つまり、まとめますと…。
・「デフォルトの文字コード」に関わらず、そのテキストをShift-JISに変換した時点で、改行文字が「\r\n」なのか「\n」なのかが問題。
・「デフォルトの改行文字」は、マルチラインモードを使用する場合、そのテキストの改行文字に深く関係する。
ということになります。
|
|