在行尾加入帶有特定字元的分割線

在行尾加入帶有特定字元的分割線

我必須連接兩條線。其中一個的結尾指向整個文本範例中的前一個:

line1:hello
line2:goodbye.

我需要將其更改為:

line1: hello goodbye.

我必須刪除這個巨大文字的每第三行(3 的倍數,如 3,6,9,12,15,18,21,... 行)。

這就是我想做的事。

第一個任務:

  • 檢查每一行

  • 如果以句點結尾,則.轉到下一行,

  • 如果它不以句點結尾,.則將下一行連接到目前行。

每行沒有行號標籤,它們以普通單字開頭。

第二個任務

  • 從一開始,每第三行都是垃圾,應該刪除

  • 第一個任務也必須完成,因為在某些部分第三句話被分成兩行,所以首先我必須完全加入分成兩行的行,然後我執行第二個任務。

我使用Windows 7。

答案1

第一個任務我會在 Notepad++ 中使用正規表示式搜尋和替換:

  • 開啟“搜尋”>“替換...”
  • 作為“查找內容:”,輸入"([^\.])\r\n"(不含引號)
    • 正規表示式的意思:找出以不同於“.”結尾的行。
    • 注意:如果文件具有 Linux 文件結尾,則必須僅使用“\n”而不是“\r\n”。
  • 作為“替換為:”,輸入"\1 "(不含引號;確保也複製“\1”後面的空格)
  • 作為“搜尋模式”,選擇“正規表示式”
  • 點擊“全部替換”

輸入:

hello
goodbye.
hello
hello
goodbye.
hello.
goodbye.

輸出:

hello goodbye.
hello hello goodbye.
hello.
goodbye.

第二個任務可以使用更長的正規表示式來完成:

  • 開啟“搜尋”>“替換...”
  • 作為“查找內容:”,輸入"(([^\r\n]*\r\n){2})[^\r\n]*\r\n"(不含引號)
    • 正規表示式的含義:找出由三行組成的區塊。
    • 注意:同樣,如果文件具有 Linux 檔案結尾,則必須僅使用“\n”而不是“\r\n”。
  • 作為“替換為:”,輸入"\1"(不含引號)
  • 作為“搜尋模式”,選擇“正規表示式”
  • 點擊“全部替換”

輸入:

hello goodbye.
hello hello goodbye.
sdlfj sdgf.
hello.
goodbye.
(/%&/$&=)?)=´?&%.
goodbye goodbye.
bye.
sldfjsdökl.
hello.

輸出:

hello goodbye.
hello hello goodbye.
hello.
goodbye.
goodbye goodbye.
bye.
hello.

筆記: 在這兩個範例中,我都假設沒有尾隨空格。如果有,您需要先刪除它,例如透過正規表示式替換(如上)"\s*$"""不含引號)。

相關內容