RPA程式思維系列:學習正規表達式 (Regex) 語法,告別雜亂數據處理

更新 發佈閱讀 9 分鐘

在 RPA(流程自動化)的世界裡,我們花了 80% 的時間在處理「非結構化數據」。無論是從 PDF 發票中抓取總金額,還是從混亂的 Email 裡提取訂單編號,文字處理永遠是最大的痛點。

你是否曾經寫過這種邏輯?

「先找到 "@" 的位置,然後往左抓 5 個字,再往右抓直到遇到空白鍵...」

以上這種substring, split作法也很常見,但這可能使得資料清洗變得攏長又複雜,最怕的是下次你回來看程式碼忘記這一小段的區塊是在處理什麼樣的邏輯。現在就有另一種優雅又精準的方式一樣能找到你想要的字串:正則表達式(Regular Expression,簡稱 Regex)。

在使用時,需要遵照它的語法規則,而在本社之前的文章中,很清楚透過實例介紹了使用情境以及如何使用(VBA及PAD)會計人為什麼要學正則表達式? 。還有另一篇文章也幫大家整理了很多很實用的正則表達式語法給會計人的Excel正則表達式小抄 ,歡迎參考取用!

而在本篇文章主要想要探討的是正則表達本身的語法,當未來大家看到語法時可以有個概念且更好讀懂別人的Regex。(但以我自己來說,如果真的湊不出來,跟AI講你的需求之後,它就會給你Regex的語法了,現代人的偷吃步)

Regex語法

正則可以分成這四種類別組合,主要會互相疊加使用找到特定字串。

  • 字元(Characters)
  • 量詞 (Quantifiers)
  • 定位 (Anchors)
  • 群組與邏輯 (Groups & Logic)

字元(Characters):找什麼?

  • \d:代表一個數字,d代表Digit的意思,包含0-9。
  • \w:代表一個文字,w代表Word的意思,包含英文大小寫、底線。
  • \s:代表一個空白,s代表space的意思,包含空白鍵、Tab。
  • .:代表任意一個字元,除了換行以外通吃,是強大的萬用符。
範例:如果想抓格式為 "A1" 的編號(一個字加一個數字) 你的 Pattern 就是:\w\d

量詞 (Quantifiers):找幾個?

剛剛的 \d 只能抓一個數字,如果我要抓年份 "2023" 怎麼辦?寫 \d\d\d\d 太累了。這時候我們需要「量詞」來修飾它左邊的那個規則。

  • *:0次或無限多次(有無皆可)。
  • +:1次或無限多次(至少要有一個)。
  • ?:0次或1次(可有可無)。
  • {n}:固定出現N次。
  • {n,m}:出現N次到M次之間。
小範例:
抓年份 (4位數字):\d{4}
抓訂單編號 (長度不固定的數字串):\d+

另外,很類似的* + ?想特別拉出來比較彼此差異性:
讓我們用一個具體的例子:抓取單字 "Google",但這單字可能會被打錯或變形。

* (星號):0次或無限多次(有無皆可)

適合用在:可能會出現的雜訊,例如空白鍵、裝飾符號。

    • Pattern: Go*gle (代表中間的 o 可以完全沒有,也可以有很多)
    • GogleO
    • GoogleO
    • GooogleO
    • GgleO (符合! 即使沒有 o,它也接受)

RPA 應用: 處理髒亂資料的空白鍵 A\s*B。 用來匹配 "A B"。有時候冒號前後沒有空白,有時候有 5 個空白。用 \s* 就能通吃這兩種情況。

+ (加號):1次或無限多次(至少要有一個)

適合用在:資料的核心部分,例如數字、金額、帳號。你不會希望抓到「空」的東西。

    • Pattern: Go+gle (代表中間的 o 至少要有一個)
    • GogleO (有一個 o,符合)
    • GoogleO (有兩個 o,符合)
    • GooogleO (有很多 o,符合)
    • GgleX (失敗! 因為完全沒有 o)

RPA 應用: 抓取金額 \d+。 如果你用 \d* 去抓金額,萬一游標停在兩個空白鍵中間,\d* 會覺得「0 個數字也符合」,結果回傳空字串給你,導致程式報錯。抓具體資料時,請務必用 +

? (問號):0次或1次(可有可無)。

適合用在:拼寫差異、單複數、Http/Https

    • Pattern: Go?gle (代表中間的 o 最多只能有一個,或者沒有)
    • GgleO (0 個 o,符合)
    • GogleO (1 個 o,符合)
    • GoogleX (失敗! 2 個 o 太多了,超過範圍)

RPA 應用: 網址 https?http 符合,https 也符合。這在抓取網址時是標配寫法。 還有英文單複數 files?,可以同時匹配 "file" 和 "files"。

定位 (Anchors):在哪裡?

  • ^:指定在字串的開頭,要找的字串必須出現在這行字最前面。
  • $:指定在字串的結尾,要找的字串必須出現在這行字最後面。
  • \b:單字邊界,b代表Boundary,單獨取得\b內的內容,前後不會再抓其他東西
範例:假如你要搜尋數字100,\b100\b。它就只會抓獨立存在的"100"而不會抓到"2100"或"0910012345"裡面的100。

範例2:驗證手機號碼(台灣手機號碼)
Pattern設計:^\d{10}$,從頭跟結束時都要是數字,且數字只能10碼。
結果:
0912345678 -> Pass
0912345678 (有空白) -> Fail(後面沒有立刻結束,包含到空白)
Tel:0912345678 -> Fail (開頭不是數字)

群組與邏輯 (Groups & Logic):建立結構

當結構變複雜時,可以使用群組把所有語法包起來,設定篩選範圍。

  • [] 集合(Set):在範圍內有符合一個的。
例如[ABC]代表這個字串有A或B或C。
常見用法:[A-Z]有出現所有大寫字母都符合、[a-z]亦相同、[0-9]有出現數字0-9都符合。
  • 或(Or):有符合左邊或右邊規則即可。
例如Cat|Dog代表,有符合Cat或Dog都會被匹配到。
  • ()群組(Group):有兩種功能。1. 邏輯打包 2. 把特定的部分提取出來就好。
範例1:想抓笑聲 "hahaha",長度不限。
若使用ha+,會變成h只有一個,a可以有很多個。也就是會抓到haaaaa。
(ha)+,而使用()就是限定括號內會一起出現多次,就會抓到"hahaha"。

範例2:有一行文字 Order Number: 2023999 created.,你只想把號碼 2023999 存進變數。
如果使用Order Number: \d+,你會抓到Order Number: 2023999。變成你得在用程式去除掉Order Number: 跟可能多餘的空白部分。

這時候如果你用Order Number: (\d+),Regex知道你只想抓括號裡面的字串,就可以更有效率。

小工具:

這邊介紹一個小工具,如果你自己設計出了正則表達,想要測試是不是正常運作可以到這個網站做測試或者看到別人的正則可以直接貼進去看效果。這個工具算是蠻實用也普遍被熟知的~

小結語:

這次整理又再一次統整跟複習,透過這篇文章希望各位有更了解正規表達式的“規則”,之後看到別人有寫正則的時候也不妨去拆解看看他們想要抓什麼值~但就像前面有提到,現在有AI真的很方便,真的想不出來AI都可以查得到唷!

動動腦

假設要從這句話抓出 名字Client Name: [Jason] Confirmed.

請試試看,你會怎麼把 [] 當作定位點,但只抓出 Jason

  1. 先寫出「全貌」:\[\w+\] (這會抓到 [Jason],含括號)
  2. 把要的「肉」包起來:\[(\w+)\]

這樣寫,機器人就會知道:

  • Full Match (全貌): [Jason]
  • Group (提取): Jason


下篇再見~

留言
avatar-img
會計自動化研究社
18會員
21內容數
致力於交流【VBA|RPA自動化|會計實務】的學習社群。
2026/01/07
本文探討程式開發中常見的錯誤處理方式,從傳統的「遇錯即停」到更靈活的「可控失敗」。以Power Automate為例,介紹了其內建的錯誤處理機制,如重試原則、所有錯誤設定,例如將無法轉換的文字視為0並移至下一個動作。重點強調錯誤處理的目標不是忽略錯誤,而是讓流程跑完後集中處理「可控失敗」
Thumbnail
2026/01/07
本文探討程式開發中常見的錯誤處理方式,從傳統的「遇錯即停」到更靈活的「可控失敗」。以Power Automate為例,介紹了其內建的錯誤處理機制,如重試原則、所有錯誤設定,例如將無法轉換的文字視為0並移至下一個動作。重點強調錯誤處理的目標不是忽略錯誤,而是讓流程跑完後集中處理「可控失敗」
Thumbnail
2026/01/05
繼上一篇介紹API文章承諾要有一篇實際操作API的實戰篇讓大家可以更了解怎麼樣在實際流程中加上API 本文教學如何運用RPA(Power Automate)結合Gemini API,建立一個簡易版的AI Agent,利用臺銀匯率資料,比較今日與昨日數值進行初階分析,產出漲幅超過1%的分析報告。
Thumbnail
2026/01/05
繼上一篇介紹API文章承諾要有一篇實際操作API的實戰篇讓大家可以更了解怎麼樣在實際流程中加上API 本文教學如何運用RPA(Power Automate)結合Gemini API,建立一個簡易版的AI Agent,利用臺銀匯率資料,比較今日與昨日數值進行初階分析,產出漲幅超過1%的分析報告。
Thumbnail
2025/12/17
API是什麼? 本文將從 RPA 使用者熟悉的情境出發,介紹 API 是什麼、為什麼在自動化流程中需要 API,以及 API 與 UI 操作在流程設計上的差異。透過實際例子說明 Request、Response、JSON 與認證的基本概念,幫助 RPA 使用者理解 API 概念。
Thumbnail
2025/12/17
API是什麼? 本文將從 RPA 使用者熟悉的情境出發,介紹 API 是什麼、為什麼在自動化流程中需要 API,以及 API 與 UI 操作在流程設計上的差異。透過實際例子說明 Request、Response、JSON 與認證的基本概念,幫助 RPA 使用者理解 API 概念。
Thumbnail
看更多
你可能也想看
Thumbnail
在所有自動化流程、程式語言開發中,條件判斷無所不在。因為判斷式可以說是是人類大腦思考邏輯的基礎,一天當中的大大小小的決策都隱含著判斷式的身影。延續先前報修申請的例子,我們建立了一個只要有人填寫報修申請表,負責人就會收到通知的自動化流程。如果實際運作的模式是根據不同的報修種類,通知不同的負責人呢?
Thumbnail
在所有自動化流程、程式語言開發中,條件判斷無所不在。因為判斷式可以說是是人類大腦思考邏輯的基礎,一天當中的大大小小的決策都隱含著判斷式的身影。延續先前報修申請的例子,我們建立了一個只要有人填寫報修申請表,負責人就會收到通知的自動化流程。如果實際運作的模式是根據不同的報修種類,通知不同的負責人呢?
Thumbnail
本篇文章教你如何使用 Windows 內建的工作排程器來呼叫 Power Automate Desktop 的流程,實現定時執行的自動化。將詳細介紹取得流程 URL、設定工作排程器的步驟及注意事項,幫助你提高自動化的效率和便利性。如果你對 RPA 有興趣或想學習更多功能,歡迎參加我們的在線課程!
Thumbnail
本篇文章教你如何使用 Windows 內建的工作排程器來呼叫 Power Automate Desktop 的流程,實現定時執行的自動化。將詳細介紹取得流程 URL、設定工作排程器的步驟及注意事項,幫助你提高自動化的效率和便利性。如果你對 RPA 有興趣或想學習更多功能,歡迎參加我們的在線課程!
Thumbnail
這篇文章深入比較兩大自動化工具 Zapier 和 UiPath,分析了在適用範圍、擴展性、執行環境和學習門檻上的差異。Zapier 適用於簡單的雲端整合,適合快速啟動自動化流程;而 UiPath 則支援複雜的業務流程和桌面應用的自動化,適合大型企業和需要高度客製化的自動化需求。
Thumbnail
這篇文章深入比較兩大自動化工具 Zapier 和 UiPath,分析了在適用範圍、擴展性、執行環境和學習門檻上的差異。Zapier 適用於簡單的雲端整合,適合快速啟動自動化流程;而 UiPath 則支援複雜的業務流程和桌面應用的自動化,適合大型企業和需要高度客製化的自動化需求。
Thumbnail
這篇文章將帶您走進 RPA 的學習世界,專注於 UiPath 中的 Excel 常用功能。例如,如何使用 Excel File、Read Range、Write Cell、Filter 和 Insert Sheet。將透過範例讓您瞭解這些功能的實際應用,幫助掌握自動化流程這項技術,我們一起開始學習!
Thumbnail
這篇文章將帶您走進 RPA 的學習世界,專注於 UiPath 中的 Excel 常用功能。例如,如何使用 Excel File、Read Range、Write Cell、Filter 和 Insert Sheet。將透過範例讓您瞭解這些功能的實際應用,幫助掌握自動化流程這項技術,我們一起開始學習!
Thumbnail
在職場上,日期與時間是最基本而重要的資訊,而當我們在進行資料處理或是 RPA 流程開發時,有時需要將既有日期或時間轉換為不同格式,以利後續使用,因此 RPAI 數位優化器今天要分享 UiPath 這套軟體另一個方便、實用,且更符合低程式碼精神的 Modify Date 功能!
Thumbnail
在職場上,日期與時間是最基本而重要的資訊,而當我們在進行資料處理或是 RPA 流程開發時,有時需要將既有日期或時間轉換為不同格式,以利後續使用,因此 RPAI 數位優化器今天要分享 UiPath 這套軟體另一個方便、實用,且更符合低程式碼精神的 Modify Date 功能!
Thumbnail
在 UiPath 的學習道路上,我們常會對這些各項功能、參數感到混亂,因此RPA數位優化器的系列文章將會對這些功能參數進行解說。RPAI數位優化器這次要介紹Inject JS Script功能!想要更精準地與網頁進行互動、操作網頁元件時,就千萬不能錯過這個功能,可以幫助RPA機器人更精準地操作流程!
Thumbnail
在 UiPath 的學習道路上,我們常會對這些各項功能、參數感到混亂,因此RPA數位優化器的系列文章將會對這些功能參數進行解說。RPAI數位優化器這次要介紹Inject JS Script功能!想要更精準地與網頁進行互動、操作網頁元件時,就千萬不能錯過這個功能,可以幫助RPA機器人更精準地操作流程!
Thumbnail
機器人流程自動化(RPA)已成為企業數位轉型的關鍵技術,市面上有許多免費且易於使用的 RPA 軟體,如 UiPath。這篇文章教你如何快速、簡單地安裝 UiPath,這款操作門檻低、適合新手的工具。即使沒有 IT 或程式語言背景,任何人都能輕鬆上手並開始自動化工作,快開啟你的 RPA 學習之旅!
Thumbnail
機器人流程自動化(RPA)已成為企業數位轉型的關鍵技術,市面上有許多免費且易於使用的 RPA 軟體,如 UiPath。這篇文章教你如何快速、簡單地安裝 UiPath,這款操作門檻低、適合新手的工具。即使沒有 IT 或程式語言背景,任何人都能輕鬆上手並開始自動化工作,快開啟你的 RPA 學習之旅!
Thumbnail
初學者有時候無法順利執行RPA流程,可能只是因為未能留意系統的預設情況,因此我們在日期與時間(基礎篇)中,先簡單說明基本的時間格式與設定方法,協助初學者進行除錯,而進階篇則將透過實際操作,讓已經熟悉UiPath的學習者能靈活應用、加深印象!
Thumbnail
初學者有時候無法順利執行RPA流程,可能只是因為未能留意系統的預設情況,因此我們在日期與時間(基礎篇)中,先簡單說明基本的時間格式與設定方法,協助初學者進行除錯,而進階篇則將透過實際操作,讓已經熟悉UiPath的學習者能靈活應用、加深印象!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News