Google Docs 中的換行可以透過三種可靠的方式移除:在尋找和取代中啟用規則運算式,搜尋 \n 即可一次刪除或取代所有斷行;將文字以未格式化方式貼到乾淨的文件中再手動修正;或是將文字複製到 Line Break Remover,使用其中三種明確的模式之一處理後再貼回結果。當文件已經開啟時,原生的尋找和取代路徑是最快的選項,而外部瀏覽器工具則能讓你更精細地控制段落邊界的處理方式,並顯示已移除與保留的 token 的精確數量。無論選擇哪條路徑,你實際操作的字元都是 CR、LF、CRLF、U+2028 與 U+2029——也就是 JavaScript 規格與 Unicode 換行演算法所辨識的同一組五個換行 token。Google Docs 在編輯器中並不會明顯區分它們,這就是為什麼以計數、模式驅動的轉換通常比捲動並按下退格鍵更可靠。

藏在 Google Docs 文字中的換行 token
大多數貼上的文章都帶有來自先前來源的換行。PDF 匯出會在每七十欄進行硬換行,試算表匯出會在每筆紀錄後加上 CRLF,較舊的 Mac 檔案仍使用獨立的 CR,而文件系統偶爾也會輸出 U+2028 LINE SEPARATOR 或 U+2029 PARAGRAPH SEPARATOR,因為 Unicode 也將它們視為斷行。Google Docs 會將其中任何一個都呈現為內文中的一行,所以視覺上它們看起來完全相同。這種視覺上的一致性,正是手動清理經常漏掉罕見類型的原因。
Line Break Remover 中的這五個辨識 token 對應到官方規格。根據 MDN JavaScript lexical grammar 與 ECMAScript Language Specification,JavaScript 換行字元正好是 LF、CR、LS(U+2028)和 PS(U+2029),而 CRLF 則被視為單一組合 token。處理這五種就能避免僅僅因為文字區域以相同方式顯示它們,而留下隱藏的分隔符號。
三個值得認識的 Google Docs 方法
在動用外部工具之前,先試試內建功能。它們能涵蓋大多數日常情境,而且無需離開文件。
- 使用規則運算式進行尋找和取代。開啟 Edit,選擇 Find and Replace,點選對話框內的三點選單,並啟用 Match using regular expressions。在 Find 欄位輸入 \n。將 Replace 欄位留空即可刪除所有斷行,或輸入一個空格將已換行的文字重新接成連續段落。點選 Replace all。CRLF 與獨立的 CR 也會被比對到,因為規則運算式引擎會將它們正規化,所以計數是可靠的。
- 貼上未格式化的文字。從原始來源複製文字,點入 Google Docs 文件,在 Windows 或 Chrome OS 上按下 Ctrl+Shift+V,或在 macOS 上按下 Command+Shift+V。選擇 Paste unformatted text。貼上的區塊僅帶有一般的段落斷行,接著你就可以如前述用 Find and Replace 將它們接合。
- 顯示格式化記號後手動使用退格鍵。開啟 View 並啟用 Show non-printing characters,讓段落記號(¶)與分節符號以淡色字型顯示。將游標放在不想要的斷行開頭並按下退格鍵,或放在結尾按下 Delete。這在斷行數量不多時可行,但面對數百個段落時容易出錯。
當文件很大、來源已經混合多種斷行類型,或結果必須逐段檢視時,手動路徑會變得不切實際。這時就是以計數、模式驅動的轉換發揮價值之處。
使用 Line Break Remover 清理文字
清理一大塊文字的最快方式是將文字從 Docs 複製出來,經過 Line Break Remover 處理,再貼回結果。每個步驟都在當前的瀏覽器分頁中完成,因此不會上傳任何內容。
- 貼上文字並選擇單空格取代、完全移除或保留段落。在 Google Docs 中選取文字、複製,然後貼到 Line Break Remover 頁面的輸入區。接著選擇符合你期望結果的模式。Replace with one space 會將每個斷行轉成一個普通空格。Remove completely 會在不取代的情況下刪除每個斷行。Preserve paragraphs 會保留段落邊界,同時接合已換行的單行。
- 處理文字並檢視已移除、已偵測與剩餘的換行 token 計數。執行工具並檢視三個計數器。Detected 是輸入中已辨識的換行 token 總數。Removed 是被取代的數量。Remaining 是輸出中仍出現的換行 token 數量。detected = removed + remaining 的關係永遠成立,而 CRLF 貢獻的是一個 token 而不是兩個。
- 複製輸出,或在瀏覽器剪貼簿權限無法使用時手動選取。使用複製按鈕一鍵傳輸,或是在瀏覽器阻擋程式存取剪貼簿時,以滑鼠反白輸出並使用平台快捷鍵複製。在 Google Docs 中以 Ctrl+Shift+V 貼回清理過的文字,以保持未格式化狀態。
輸入上限為 1,000,000 個 UTF-16 字碼單位,因此在這個大小以內的輸入會一次處理完成。剛好達到邊界的文字會被接受;超過一個字碼單位則會在任何轉換執行前被拒絕。編輯輸入或切換模式會立即清除先前的結果,因此陳舊的統計數字絕不會洩漏到新的決策中。
在三种輸出模式之間做選擇
每種模式都以不同規則處理同一組五個 token,因此正確的選擇取決於斷行在來源中的意義。
| 模式 | 每個已辨識 token 的規則 | 最佳使用時機 | 需要注意的風險 |
|---|---|---|---|
| Replace with one space | 每個 CRLF、CR、LF、U+2028 或 U+2029 都會變成一個 U+0020。 | 斷行是連續段落中的視覺換行,這是最常見的情況。 | 兩個連續的斷行會產生兩個空格而非一個,因為工具不會將結果合併。 |
| Remove completely | 每個已辨識的 token 都會被空字串取代。 | 你正在清理記錄分隔符、CSV 匯出,或其他詞與詞之間已經以空格分隔的結構化文字。 | 跨越硬換行被拆開的詞會被直接接合,這會破壞自然段落。 |
| Preserve paragraphs | 單一 token 的連續會變成一個空格。任何兩個或以上 token 的不中斷連續會正好變成兩個 LF 字元。 | 來源使用空行分隔段落,而每個段落內部被換行的單行應該被接合。 | 單獨一個 U+2029 會被視為一個斷行而非一段段落,因此在必須保留段落處請放置兩個斷行。 |
只有真正的換行 token 才會參與連續判斷。如果兩個斷行之間存在空格、Tab 或不斷行空格,這些斷行屬於各自獨立的單 token 連續,各自會變成一個空格。空格、Tab 與不斷行空格永遠不會被合併或修剪,因此輸出會保留輸入中原有的水平空白。
貼回結果時不要重新引入斷行
剪貼簿可能會連同可見字元一起帶著隱形的換行,這就是為什麼最後的貼上動作很重要。在 Google Docs 中,點入目的地段落,在 Windows 或 Chrome OS 上按下 Ctrl+Shift+V,或在 macOS 上按下 Command+Shift+V,然後選擇 Paste unformatted text。貼上的區塊只會以一般的段落間距呈現,因此清理過的輸出就是最終保留下來的內容。對於較大的文件,請先貼到一份暫時的空白文件,以 View、Show non-printing characters 掃描一次,確認記號看起來正確後再複製到最終位置。
何時該改用其他工具
Line Break Remover 是一種字串層級的轉換。它不會解析 Markdown、HTML、CSV 引號、原始碼語法、郵寄地址或語意化的文件結構,因此承載業務意義的斷行會和視覺換行以同樣方式被移除。如果目標是清理水平空白而非換行,Whitespace Remover 會合併或刪除空格與 Tab,但保留斷行不動。如果目標是將可見的斷行轉成 \n 等字面字元,相關的 Line Break Converter 則進行反向對應。將正確的工具與快速的格式化記號視覺檢查搭配使用,能讓清理工作保持誠實,而不會失去原本重要的結構。
延伸閱讀:Counting Lines in Poetry: Forms, Rules, and a Quick Tool。
延伸閱讀:Convert Numbers to Words for Google Sheets Without Code。