他の CRLF コードに影響を与えずに、空行の CRLF を \n に変換する方法

他の CRLF コードに影響を与えずに、空行の CRLF を \n に変換する方法

私は家族の歴史に関するミニ小説を書いており、別の PC で作業しています。

私は、ワードプロセッサとして UltraEdit の古いバージョンを使用していました。しかし、XP 以降の Windows との互換性はあまりありませんでした。Windows 7 で動作させる方法に関する投稿をどこかで読みましたが、その投稿は動作し、Windows 10 ラップトップへのデータ転送にも耐えました。しかし、ある日クラッシュしてしまい、修復できませんでした。そこで、多くの友人が、UltraEdit 13 よりも優れていると主張して、Notepad++ を試すように勧めてくれました。Notepad++ で作業しようとしましたが、書式が壊れていました。私が書いたように、段落がすべて 1 行に収まり、画面の端で自動的に折り返され、段落の間に空白行が入るのではなく、すべてが壊れていました。[記号の表示] をオンにすると、各段落の行末に CRLF が 1 つ、空白行に CRLF が続く代わりに、複数の CRLF がありました。私が望んでいたよりも約 200% 多くなりました。

ここでテキストを入力して、Notepad++ での表示方法を示しようとしましたが、このメッセージ ボードで修正されて、本来の表示方法になりました。そのため、どのように表示されるかをお見せすることはできません。ただし、ここで見つけたのは、\R(?!\R) の RegEx 検索\置換を実行すると段落内の行が修正されるというものです。ただし、段落間の空行は、無意識に追加してしまうので、必要でした。段落ごとに CRLF が 1 つしかないので、テキストを含む各行の末尾に \n を追加して、既に書き込まれた段落の間に行を作成する RegEx 検索\置換はありますか? 頭がおかしくなりそうです。でも、UltraEdit を更新する余裕はありません。それに、新しいバージョンはおそらく気に入らないでしょう...

答え1

よく理解できていないのですが、前にも後ろにも別の改行がない場合にのみ改行を削除したいということですね。


これは役に立ちます:

  • Ctrl+H
  • 検索対象:(\R\R)\R*|\R
  • と置換する:$1
  • 選択する 正規表現
  • Replace all

説明:

(\R\R)      # 2 linebreaks (i.e. paragraphs spacing)
\R*         # 0 or more linebreaks, optional
|           # OR
\R          # a single linebreak

交換:

$1          # content of group 1, 2 linebreaks

答え2

Notepad++ で簡単に修正できます:

  • 押すCtrlHと検索/置換ダイアログが表示されます。

二重EOLを置き換える

  • セット検索モード拡張

  • 入力して\r\n\r\nください検索対象:つまり、CR 文字と LF 文字の括弧です。

  • 入力して\r\n\くださいと置換する:

  • クリックすべて置換

    ボタンをクリックするたびに、重複したCR/LFペアの数が減ります。文書全体を通して。これにより、シングル各段落の終わりに改行を入れます。上記の引数をダブル行間隔。

一貫性が欲しいなら二重線間隔

  • 変化全てシングル行間隔は上記の通りです。
  • 次に、すべてを検索し\r\n、次のように置き換えます\r\n\r\n一度

さらに高度な検索機能もご利用いただけます。正規表現

関連情報