從文字中擷取數字,意思是在一段文字內辨識出每一個數值,並將其以整齊的清單或彙總統計的形式回傳,搭配明確且可切換的規則來定義哪些內容算作數字。這些數字可以出現在任何地方:發票、報表、記錄檔、問卷匯出檔以及自由格式的備註中,擷取工具會將其逐行、以逗號分隔,或彙總為數量、總和、最小值、最大值與平均值的方式回傳。預設情況下,規則會辨識整數與小數,包括負值、前置加號,以及沒有前置零的裸小數。千分位分隔符與科學記號則隱藏在各自獨立的切換選項之後,另有獨立的去重切換可在保留首次出現順序的前提下,將重複項目合併。輸出結果會回報找到多少個數字,讓你在複製之前,可以先根據預期審核每一次擷取的結果。整個處理流程會在單一線性掃描中完成,上限為一百萬個字元,因此即使是大篇幅的貼上內容,也能瞬間回傳結果。

什麼算作數字:可切換的規則
大多數「擷取數字」的工具會對數字的定義做一次猜測,然後承擔其後果。從文字中擷取數字工具的做法恰好相反:每一條決定某段字元序列是否成為數字的規則,在頁面上都是一個切換選項,而頁面會在讓你切換之前,先說明每個切換的作用。
預設情況下,工具會辨識整數與小數,包括:
- 負值,例如 -42 與 -3.14。
- 前置加號,例如當你開啟該切換時的 +7。
- 沒有前置零的裸小數,例如「延遲為 .5 秒」中的 .5。
符號規則的設計相當嚴謹。只有當負號確實附加於數字時才會保留,例如位於行首、空白字元之後,或是開括號或比較運算子之後。因此算式 5-3 會得到五與三,而不是五與負三,這樣貼上的文字中的算式才不會被誤讀為負值。
千分位分隔符擁有獨立的切換,因為它是單一最常見的誤判來源。當分組格式正確時,1,000,000 會被視為一個數字而非三個片段;當分組格式錯誤時,擷取工具會在錯誤處切分。關閉此切換後,你可以將逗號視為一般標點,直接拉出字面上的數字序列,這正是當資料中的逗號出現在非數值位置時你所需要的方式。
科學記號隱藏在它自己的切換之後,預設為關閉,因為在一般文字中,1e5 較常是打錯或識別碼,而非十萬。當你的資料確實是科學記號時,將其開啟,工具便會辨識尾數與指數的配對,並將其回報為單一數字。
三步驟從文字中擷取數字
- 將含有你想擷取之數字的文字貼入輸入欄位。工具最多接受一百萬個字元,並以單一線性掃描處理整段貼上的內容。
- 視需要調整規則。開啟或關閉千分位分隔符、科學記號或去重切換,並依據你的資料調整符號規則。
- 選擇清單或統計輸出。清單模式會逐行回傳每個數字,統計模式則會回傳數量、總和、最小值、最大值與平均值。找到的數量永遠會顯示,讓你在複製之前,能依據預期審核結果。
由於工具完全在瀏覽器中執行,不會上傳、儲存任何資料,也不會綁定帳號,因此可以放心貼上機密文件中的數字,而無需擔心隱私問題。
解讀統計區塊
切換到統計輸出會將清單轉為五行摘要,可以直接貼入報表或工單:
- 數量:工具在你的貼上內容中找到的數值總數。此數字為精確值,而非估計值。
- 總和:所有擷取值的總計,以標準的 JavaScript 雙精度浮點運算計算。
- 最小值與最大值:擷取值中的最小與最大值,可用於檢核測量值或金額的範圍是否合理。
- 平均值:總和除以數量,以相同的雙精度範圍計算。
頁面誠實說明了雙精度浮點運算的意義。乾淨小數的總和可能帶有熟悉的浮點殘差,例如 0.1 + 0.2 變成 0.30000000000000004,這在第十五位有效數字之後才會產生影響。在一般發票、報表或快速彙總的情境中,這種殘差並不可見;但若是需要精確小數的會計作業,使用具有任意精度運算能力的試算表,其實早有原因。
這些數字的來源:簡要比較
同一個擷取工具可處理各式各樣的貼上輸入。差異主要在於每種來源的呈現方式,以及你通常希望從中得到何種輸出。
| 貼上文字的來源 | 典型內容 | 實用的輸出模式 |
|---|---|---|
| 發票或收據 | 品項金額、稅額、日期,夾雜文字 | 總額用統計,品項用清單 |
| 應用程式記錄檔 | 延遲、狀態碼、位元組數 | 延遲的最小值、最大值與平均值用統計 |
| 問卷或 CSV 匯出檔 | 數值答案夾雜自由文字 | 原始數值用清單 |
| 報表或散文文件 | 嵌入的數字,例如「Q3 營收為 $2.4M」 | 供試算表使用的清單 |
| 原始 HTML 或 JSON 片段 | 嵌入於標記中的數字 | 清單,針對重複的 ID 開啟去重 |
清單與統計之間的切換是免費的,因此同一段貼上內容可以任選模式檢視。工具會回報每次執行找到多少個數字,讓你能將其與預期比對,例如「我貼了二十行記錄,預期大約有十五個測量值」。
規則的界線:範圍與限制
一個誠實的擷取工具會告訴你它無法辨識什麼。工具所聲明的範圍僅限於 ASCII 數字:全形數字與其他文字系統的數字會原樣通過而不被擷取,頁面上也明白指出這一點。若你將帶有變音符號的字元與阿拉伯-印度數字一同貼上,除非先透過獨立的標準化步驟進行轉換,否則阿拉伯-印度數字不會被擷取。
工具刻意不做的事情是詮釋。它不進行貨幣轉換、不具備單位感知、不解析日期,也不會猜測數字在句子中的意義。「Q3 營收為 $2.4M」會得到 2.4,而不是解析後的貨幣值;「至 2024-03-15」會得到 2024、03 與 15 三個獨立的整數,而不是一個日期。這種克制的設計正是重點:一個值得信賴的擷取工具,其規則必須是可讀的,而這些規則由超過二十個有文件記載的測試案例所固定,涵蓋符號邊界、格式錯誤的分組、貨幣、百分比、嵌入數字以及換行變體。
另外還有兩項值得了解的行為:
- 若輸入中沒有可辨識的數字,工具會如實回報為空清單與數量零,而不是將其視為錯誤或格式錯誤的貼上內容。
- 嵌入的數字會在其出現的任何位置被擷取:item123 得到 123、$19.99 得到 19.99、50% 得到 50,因為數字擷取工具的工作就是找出每一個數字,而不是評斷其上下文。
若需擷取同類來源文字中的電話號碼,可參考從任何文字中擷取電話號碼的指南,其中說明了該擷取工具的對應工作流程。
為何擷取作業在瀏覽器本地端執行
數字擷取工具是本站擷取工具家族的一部分,與電子郵件、URL 與電話號碼擷取工具並列,並採用相同的架構:整個掃描都在用戶端進行,在瀏覽器分頁中完成,不會傳送任何資料到伺服器。文法本身是對你的文字進行單次掃描,套用文件中規定的符號附加規則,並以頁面上所述的限制在雙精度範圍內計算統計值。
對於一次性的貼上內容,本地執行是無感的。對於發票金額、記錄檔,以及任何包含你不希望透過網路傳送之數字的貼上內容,它消除了原本會懸而未決的隱私疑慮。其實作方法論與任何審查者所撰寫的內容相同:定義文法、列出切換選項、說明精度限制,並以測試案例固定行為。在實作合併之前,已有超過二十個測試案例固定了這些規則,這正是讓「頁面上的規則就是工具實際套用的規則」這句話擁有佐證、而非只是行銷說法的關鍵。
實際的結論是,工作流程簡化為貼上、切換幾個選項,然後複製。貼上文件、切換符合你資料的規則、選擇清單或統計模式,然後在將數字送到別處之前,先將數量與預期核對一遍。
延伸閱讀:安全地從 Facebook 文字中擷取電話號碼。