如何將空行上的 CRLF 轉換為 \n 而不影響其他地方的其他 CRLF 程式碼

如何將空行上的 CRLF 轉換為 \n 而不影響其他地方的其他 CRLF 程式碼

我正在寫一本家族歷史迷你小說,並一直在另一台電腦上創作。

我使用舊版的 UltraEdit 作為我的文字處理器。但在XP之後與Windows的兼容性不太好。我在某處讀到一篇關於讓它在 Windows 7 上運行的帖子,該帖子可以運行,並且在數據傳輸到我的 Windows 10 筆記型電腦後仍然存在。然後有一天它崩潰了,我無法修復它。所以很多朋友告訴我試試Notepad++,聲稱它比UltraEdit 13更好。我的段落不是全部在一行上並自動換行在螢幕邊緣,然後它們之間有一個空行,就像我寫的那樣,它全部被分解了。我打開“顯示符號”,而是在每個段落行的末尾添加一個 CRLF,然後在空白行中添加一個 CRLF,其中有多個 CRLF。曲調比我想要的多了大約200%。

我嘗試在此處輸入一些文字以顯示它在 Notepad++ 中的外觀,但此留言板修復了它,使其看起來應該如此。所以我無法向你展示它的樣子。但是,我在這裡的某個地方找到了這個,對 \R(?!\R) 進行正則表達式搜尋\替換,並修復了段落中的行。然而,我想要段落之間的空行,因為我不假思索地將它們加進去。那麼現在每個段落只有一個 CRLF,是否有正則表達式搜尋\替換在每行末尾添加一個 \n 並在其上添加文本,以便在已寫入的段落之間創建該行?這真讓我抓狂。但我無力更新 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一次

甚至可以使用更進階的搜尋功能正規表示式

相關內容