
什麼是正規表達式?
正規表達式 (Regular Expression / Regex) 是一種用來描述字串模式的特殊撰寫方法。在資料驗證、搜尋、取代等工程師的日常工作中,它是不可或缺的工具。
為什麼該學習正規表達式?
- 高效的字串操作:無需撰寫複雜的條件判斷,僅需一行程式碼即可定位模式。
- 跨語言的通用技能:幾乎支援所有程式語言,包括 JavaScript, Python, PHP, Java 等。
- IDE 與編輯器中的強大搜尋功能:從整個程式碼庫中尋找特定模式時極其強大。
基本元字元 (Meta-characters)
首先介紹一些最基本且必須掌握的元素:
.:符合任意單一字元。*:符合前一個字元出現 0 次以上。+:符合前一個字元出現 1 次以上。?:符合前一個字元出現 0 次或 1 次。^:行首。$:行尾。\d:符合數字 (0-9)。[a-z]:符合 a 到 z 之間的任意單一字元。
實戰活用模式
1. 電子郵件格式檢查(簡易版)
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
常用於使用者註冊表單的輸入值檢查等場景。
2. URL (http/https) 判定
^https?://[\w/:%#\$&\?\(\)~\.=\+\-]+$
在字串中擷取連結或確認 URL 格式時非常方便。
3. 日本郵遞區號
^\d{3}-\d{4}$
能準確擷取並驗證「3 碼-4 碼」的格式。
使用正規表達式的注意事項
正規表達式雖然強大,但有時會成為 「ReDoS (正規表達式服務阻斷攻擊)」 這種弱點的成因。
若撰寫了極其複雜的模式(特別是巢狀重複),針對特定的輸入,計算量可能會呈現爆發性增長。應盡可能保持模式簡單,且在處理不可信的輸入時,需考慮加上執行時間限制等防護措施。
在 DevToolKits 進行測試
要確認腦中構思的正規表達式是否能正確運作是很辛苦的。使用本站的 正規表達式測試工具,您可以:
- 對輸入的文字即時高亮顯示符合的部分。
- 列表顯示擷取群組 (Capture groups) 的內容。
- 確認切換旗標 (g, i, m) 時的行為變化。
💡 提示:若對「這個模式對嗎?」感到不安,在工具中輸入各種測試案例進行驗證,是進步的最短捷徑。