若要依詞序反轉文字,請將段落貼到一個以瀏覽器為基礎的斷詞工具中,它會將非空白詞元的順序顛倒,同時保留每個空格、Tab 鍵和換行符在原本的位置。第一個詞會與最後一個詞交換位置,第二個詞與倒數第二個詞交換,以此類推,因此輸入「one two three」會變成「three two one」,而不是「eerht owt eno」。每個詞內部的字母會維持原本的順序,而逗號、句號和驚嘆號等標點符號會保持在原本所跟隨的詞後面,不會被當成獨立的詞元。由於空白字元從不移動或改變,單一空格仍是單一空格,兩個空格仍是兩個空格,Tab 仍是 Tab,任何換行、CRLF 或 CR 序列都會出現在輸入字串中原本的位置。整個操作在本機瀏覽器中執行,因此不會上傳任何資料到遠端伺服器,工具會回報它反轉的非空白詞元數量,讓你在將結果複製到其他應用程式、程式碼編輯器或文件之前,能夠確認數量是否符合預期。

反轉文字時,什麼算是「詞」
在這個工作流程中,「詞」指的是任何最長的非空白字元連續序列。這種機械式的定義意味著,當字母、數字、符號、表情符號和標點符號之間沒有空白時,它們都屬於同一個詞元。在句子「hello, brave world!」中,三個詞元分別是「hello,」、「brave」和「world!」。反轉後,段落會變成「world! brave hello,」——逗號仍然緊黏著「hello」,驚嘆號仍然緊黏著「world」,與來源中的狀態完全相同。
斷詞工具刻意不使用字典、語言規則或語法啟發式方法。它從不判斷逗號究竟應該跟著前面的詞還是後面的詞,也從不決定「can't」是否應該拆成「can」和「't」,更不會嘗試偵測句子邊界。這使得反轉結果對於任何重視間距結構的文字都能保持可預測性:程式碼片段、標記語言、CSV 資料列、設定檔、測試固定資料,以及格式化過的散文,表現方式都完全相同。如果你需要具備語法感知的斷詞,或標點符號依語言規則移動,這個工具無法提供該行為,你應該尋找其他做法。
如何逐步反轉文字
完整的工作流程分為三個步驟,適用於任何不超過一百萬個 UTF-16 程式碼單位的段落。
- 貼上要反轉非空白詞元順序的文字。單一句子、多行清單、縮排的程式碼片段,或多段落區塊,處理方式都完全相同。反轉詞序工具接受任意長度的空白序列,包括多個連續空格、Tab 鍵,以及 CRLF、CR 或 LF 換行符。
- 選擇「反轉詞序」。工具會將輸入切分成交替出現的空白與非空白序列,僅收集非空白序列,將其反轉後,再把反轉後的詞元代回原本未變動的空白結構中。
- 驗證反轉後的詞元,並確認原本的空格、Tab 鍵和換行符是否保持在原位。工具會回報它反轉了多少個非空白詞元,並顯示完整輸出。如果你接著編輯輸入,先前的結果會自動清除,避免舊的反轉結果被誤認為目前輸出。
如果輸入只有空白、完全不含任何字元,或超過一百萬個 UTF-16 程式碼單位(哪怕只超過一個單位),工具會顯示明確錯誤訊息並拒絕執行,不會產生部分結果。單一非空白詞元屬於有效輸入,表現為確定性的無操作:工具會原封不動地回傳該詞元,並回報數量為一。
空格、Tab 鍵和換行符保持在原本位置
這類反轉作業最重要的保證,就是空白永遠不會移動。單一空格仍是單一空格,兩個空格仍是兩個空格,Tab 仍是 Tab,任何換行——CRLF、CR 或 LF——都會維持輸入時所在的地方。這正是謹慎的詞序反轉工具,與天真的字元翻轉或會壓縮空白的正規表示式之間的差別。
請考慮以下的區塊:
- 第 1 行:「one」後接兩個實際空格,沒有換行
- 第 2 行:「two」後接一個換行
- 第 3 行:「three」後面沒有任何結尾空白
反轉這三個詞元並不會改變間距結構。原本跟在「one」後面的兩個空格,在反轉後仍然會跟在佔據第一個位置的詞元後面。原本分隔「two」與「three」的換行符,仍然會分隔第二行和第三行。輸出結果會保留你提供的視覺骨架,因此欄位對齊、縮排和對齊的清單仍然保持可讀性。
由於詞元長度不同,當詞元交換位置時,視覺版面可能會看起來令人意外。原本較短的第一個詞移到較長的最後位置時,工具並不會自動補齊欄位,瀏覽器的自動換行在螢幕上也可能改變。在視窗邊緣產生的換行並非插入的換行符,而是瀏覽器自然的軟換行,底層的空白字元仍然與你貼上時完全相同。
Unicode、表情符號和沒有空格的文字系統
由於斷詞工具僅區分空白與非空白,Unicode 字母和表情符號不需要字典查詢。沒有插入空白的合併表情符號序列會被視為單一詞元,因此像 👨👩👧👦 這種表情符號組合若在貼上時周圍沒有任何空白,會作為一個單位移動,而不會被拆成個別的表情符號。組合記號(如腔調字元)會保留在相鄰詞元上,不會脫離飄移。
通常不使用空格分隔詞的文字系統——中文、日文、泰文等——如果輸入中沒有空白,可能會將整行或整個詞組視為單一詞元。工具不會套用語言專屬的分段規則,因此沒有空格的中文句子會保持單一詞元,反轉後等於自身。如果你希望反轉這些文字系統中依語言定義的詞序,需要先插入明確的分隔符,反轉詞元後再視需要移除分隔符。反轉操作本身看不到字典會視為「詞」的單位。
反轉詞序何時有用
凡是需要在不手動改寫的情況下,以相反順序取得相同詞元時,反轉詞序就很有用。常見的情境包括:
- 編寫提示題、謎題或詞序練習,讓讀者從反轉版本重建原始詞組。
- 產生測試固定資料和範例資料時,需要可預測的輸入與輸出結構,並希望以反轉順序取得相同詞元以涵蓋邊界情況。
- 嘗試人工智慧助理或搜尋引擎的提示詞,觀察詞元順序如何影響回應。
- 檢查斷詞工具實際上如何切分段落——如果反轉輸出與預期不同,代表詞元邊界很可能不在你以為的位置。
- 撰寫詼諭的措辭、「倒裝句子」玩笑,或在社群自介與聊天應用程式中製作揭曉式訊息。
- 檢查設計模擬圖中詞組的視覺對稱性,或確認詞組在兩個方向上都能一致呈現。
由於操作在本機瀏覽器中執行,你可以把機密草稿、專屬程式碼或未發表的散文貼到工具中處理,文字不會被傳送到遠端伺服器。輸出內容可供你自由複製,工具除了當下的網頁工作階段之外,絕不會保存輸入資料。
需要留意的限制
在你貼上非常大的段落,或混合多種文字系統的內容之前,了解這項作業的邊界會很有幫助。
| 限制或規則 | 實際上的意義 |
|---|---|
| 輸入大小上限 | 1,000,000 個 UTF-16 程式碼單位。剛好達到上限會被接受;超出單位哪怕一個,便會顯示明確錯誤且不產生部分結果。 |
| 純空白輸入 | 予以拒絕,因為沒有任何非空白詞元可供反轉。 |
| 空輸入 | 基於相同原因予以拒絕。 |
| 單一非空白詞元 | 屬於有效的確定性無操作;工具會原封不動地回傳該詞元,並回報數量為一。 |
| 字元層級的反轉 | 不會執行。若要取得像「olleh」這種鏡像拼字,需要使用專門的字元反轉工具。 |
| 句子或子句剖析 | 不會執行。工具從不判斷何謂句子,也不會依語言文法移動標點符號。 |
| 由右至左或雙向文字 | 不予處理。混用 LTR 與 RTL 文字系統時,可能需要支援雙向文字的編輯器才能正確檢視。 |
| 語言專屬的分段 | 不會套用。CJK、泰文及其他少用空格的文字系統,在沒有空白的狀況下會將整行視為一個詞元。 |
| 文法正確性 | 不予保留。詞序反轉後語意幾乎無法保持完整,因此發布前務必再次檢視輸出。 |
混用由左至右與由右至左文字系統的內容,可能需要專門支援雙向文字的編輯器進行視覺檢查,因為工具並不會改變視覺呈現順序——它只會改變詞元順序。請勿將反轉輸出視為翻譯、字母重組或文法正確的句子。其結果是機械化、確定性且在本機產生的,但詞序改變時語意無法保留。在將輸出插入到會因詞元順序而影響行為的程式碼、標記、命令或結構化格式之前,請先檢視輸出。
如果你正在比較各種做法,如何在 Photoshop 中反轉文字:兩種方法詳解對此有詳細說明。
如果你正在比較各種做法,如何在 Excel 中不外掛程式產生文字雲對此有詳細說明。