改行コード混在で、n を n で置換するとおかしい。

投稿者: 匿名0 声2 投稿

改行コード混在で、\n を \n で置換すると、改行コードが一行ずつずれておかしくなります。
if(!editor.EnableTab) { alert( 'EnableTab!!!!!'); Quit(); } editor.NewFile(); var crlf = 'crlfcrlfcrlfrncrlfcrlfcrlfrncrlfcrlfcrlfrn'; var lf = 'lflflfnlflflfnlflflfn'; var cr = 'crcrcrrcrcrcrrcrcrcrr'; document.write(crlf+lf+cr+crlf+lf+cr); alert('改行コード確認'); document.selection.Replace( "(..)n", "U1n", eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp ); alert('改行コードがずれてる');
よく考えてみると、置換文字列の n が何を表すかの根本的問題がありますね。 検索置 換では、CRLF LF CR いずれも n でひとくくりなので、改行コード混在可能状況下で区 別しようがないという。置換文字列に n を指定してしまうと、それが CRLF LF CR のど れか特定しようがないですね。 ただ、少し工夫して置換文字列で n をしてせず、後方参照させても同じ問題になるよう なので、これは後方参照内で、CRLF LF CR を区別できないのでしょうか?
document.selection.Replace( "(..)(n)", "2U1", eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp );

このトピックの投稿: 2