Regex 正規表達式入門指南:從零開始掌握文字比對的超能力
正規表達式(Regex)是處理文字比對、搜尋與替換的強大工具。本篇入門指南帶你從零開始學會 Regex 基礎語法、常用範例與實戰應用,搭配免費線上工具即時練習,快速提升你的文字處理效率。
什麼是正規表達式(Regex)?
正規表達式(Regular Expression,簡稱 Regex 或 RegExp)是一種用來描述「文字模式」的特殊語法。它能讓你在大量文字中快速搜尋、比對、擷取或替換符合特定規則的內容。無論你是程式開發者、資料分析師、內容編輯,還是日常需要處理大量文字的工作者,學會 Regex 都能大幅提升你的生產力。
舉個簡單的例子:假設你有一份包含上千筆資料的文件,你想找出所有的電子信箱地址。如果用肉眼逐行檢查,可能要花上好幾個小時;但透過一行 Regex,幾秒鐘就能完成。
為什麼你應該學 Regex?
- 高效搜尋與替換:在文字編輯器、程式碼編輯器中使用 Regex,能一次找到所有符合條件的內容並批次修改。
- 資料驗證:驗證使用者輸入的 Email、電話號碼、身分證字號等格式是否正確。
- 網頁爬蟲與資料擷取:從網頁原始碼中精準提取你需要的資訊。
- 日誌分析:從大量系統日誌中快速篩選出錯誤訊息或特定事件。
- 跨工具通用:Regex 被幾乎所有程式語言(JavaScript、Python、Java、PHP 等)和工具(VS Code、Google Sheets、命令列)支援。
Regex 基礎語法速覽
以下是你必須認識的核心語法元素,掌握它們就能應付大多數日常需求:
1. 普通字元
直接輸入的字母或數字就是最基本的比對。例如 hello 會比對到文字中出現的「hello」。
2. 元字元(Meta Characters)
.(點):比對任意一個字元(換行符除外)。例如h.t可比對「hat」、「hot」、「hit」。\d:比對任意一個數字(等同於[0-9])。\w:比對任意一個字母、數字或底線(等同於[a-zA-Z0-9_])。\s:比對任意一個空白字元(空格、Tab、換行)。\b:比對文字邊界,確保比對的是完整單詞。
3. 量詞(Quantifiers)
*:前一個字元出現 0 次或多次。+:前一個字元出現 1 次或多次。?:前一個字元出現 0 次或 1 次。{n}:前一個字元剛好出現 n 次。{n,m}:前一個字元出現 n 到 m 次。
4. 字元類別(Character Classes)
[abc] 比對 a、b 或 c 其中之一;[^abc] 比對除了 a、b、c 以外的字元;[a-z] 比對所有小寫字母。
5. 錨點(Anchors)
^:比對字串的開頭。$:比對字串的結尾。
6. 分組與或(Grouping & Alternation)
(abc) 將 abc 視為一組;a|b 比對 a 或 b。
常見實用 Regex 範例
以下是幾個你可以立即使用的常見 Regex 模式:
- Email 地址:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} - 手機號碼(台灣):
09\d{8} - 網址(URL):
https?:\/\/[\w\-]+(\.[\w\-]+)+[\/\w\-\.~:?#\[\]@!$&'()*+,;=]* - 日期格式(YYYY-MM-DD):
\d{4}-\d{2}-\d{2} - HTML 標籤:
<[^>]+>
如何練習 Regex?善用免費線上工具
學習 Regex 最有效的方式就是「邊學邊練」。你可以利用 Bear Helpers 提供的免費線上工具來即時測試你的 Regex 語法。在線上工具中,你只需輸入要比對的文字和 Regex 模式,就能立即看到比對結果和匹配的位置,非常適合初學者反覆練習。
練習建議:
- 先從簡單的字串搜尋開始,例如用
\d+找出一段文字中的所有數字。 - 嘗試撰寫 Email 驗證的 Regex,並用不同的 Email 格式測試。
- 逐步加入量詞和分組,挑戰更複雜的模式。
學習 Regex 的常見誤區
- 貪婪比對 vs. 懶惰比對:預設情況下,量詞是「貪婪」的,會盡可能多地比對字元。如果想要最少比對,可以在量詞後加上
?,例如.*?。 - 跳脫字元:如果你要比對元字元本身(如
.或*),記得在前面加上反斜線\進行跳脫。 - 不要追求完美:初學者常想寫出「萬無一失」的 Regex,但實務上,針對特定場景寫出「夠用」的模式即可,過度複雜的 Regex 反而難以維護。
進階學習方向
當你掌握基礎語法後,可以進一步學習以下進階主題:
- 前瞻與後顧斷言(Lookahead & Lookbehind):在不消耗字元的情況下進行條件判斷。
- 命名群組(Named Groups):用有意義的名稱標記擷取的內容,提升可讀性。
- 旗標(Flags):如
g(全域比對)、i(不區分大小寫)、m(多行模式)等。
結語
Regex 正規表達式看似複雜,但只要循序漸進地學習,從基礎語法開始練習,你很快就能體會它帶來的強大效率。無論是驗證表單、清理資料、搜尋文件內容,Regex 都是你不可或缺的工具。現在就前往 Bear Helpers 的免費線上工具開始你的第一次 Regex 練習吧!