2

削除する必要があるのはLF、ではなく、だけCRLFです。それについて何か考えはありますか?

PHP、notepad ++、シェルスクリプトなどを使用できます

ここに画像の説明を入力してください

4

4 に答える 4

8

In notepad++

Try this : (?<!\r)\n

Make sure to set the option for regular expression in the search options, hope it helps

于 2012-11-21T10:17:43.463 に答える
3

否定後読みを使用します。

$str = preg_replace("#(?<!\r)\n#", '', $str);

フィドル

于 2012-11-21T10:16:56.773 に答える
1

LFは改行文字の略で、ASCII 10、0x0A、または「\ n」(PHPの場合)です。だから

search_replace( "\n", '', $text)

プレノートCRLFは、実際には2文字のCR(キャリッジリターン)+LFです。LFを削除しても、テキストにはCR(存在する場合)が含まれます。

編集

スタンドアロンのLFだけを削除したいが、CRLFを保持したい場合は、CRLFをCRに変換するため、上記のコードは正しくありません。preg_replace()それを行うために使用する

preg_replace("/(?<!\\r)\\n+(?!\\r)/", '', $text);

何らかの理由でpreg_replace()使用したくない場合(ただし、とにかく使用したい場合)は、このばかげたアプローチを試すことができます。

// save CRLFs by replacing with some text that does 
$tmp = str_replace("\r\n", 'S0m3L1k3LyUn1Qu3T3X7', $text);

// get rid of LFs
$tmp = str_replace("\n", '', $tmp );

// restore CRLFs
$text = str_replace('S0m3L1k3LyUn1Qu3T3X7', "\r\n", $tmp);
于 2012-11-21T09:49:04.910 に答える
1

Notepad ++では、検索/置換を使用し、拡張(左下)にチェックマークを付けて置換します

\n

何もしません。

于 2012-11-21T09:49:17.913 に答える