
什麼是正規表示式?
正規表示式(Regular Expression / Regex)是一種用來描述字串模式的特殊語法。不論是資料驗證、搜尋或是取代,它都是工程師日常工作中不可或缺的利器。
為什麼應該學習正規表示式?
- 高效的字串操作: 無需撰寫複雜的條件判斷,僅需一行程式碼即可定位模式。
- 跨語言的通用技能: 幾乎所有的程式語言(如 JavaScript, Python, PHP, Java 等)都支援正規表示式。
- IDE 中的強大搜尋: 在整個專案程式碼庫中尋找特定模式時極其強大。
基礎元字符(Metacharacters)
以下是您必須掌握的幾個核心元素:
.: 匹配任意單個字符*: 匹配前一個字符 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/:%#\$&\?\(\)~\.=\+\-]+$
方便從文字中提取連結或驗證網址格式。
3. 日期格式(YYYY-MM-DD)
^\d{4}-\d{2}-\d{2}$
確保字串符合標準的年-月-日格式。
使用正規表示式時的注意事項
正規表示式雖然強大,但如果不慎使用,可能會導致 「ReDoS(正規表示式阻斷服務攻擊)」 漏洞。若設計過於複雜的模式(特別是嵌套的重複匹配),在處理某些特定輸入時,運算量會呈指數級增長。請務必保持模式簡潔,並在處理不可信輸入時設定逾時限制。
使用 DevToolKits 進行測試
僅憑大腦想像來驗證正規表示式是否正確是非常困難的。透過本站的 正規表示式測試工具,您可以:
- 即時高亮顯示匹配文字。
- 瞬間列出捕捉群組(Capture Groups)的內容。
- 輕鬆切換 Flags(如 g, i, m)來觀察行為變化。
💡 小提示: 當您猶豫「這個模式寫對了嗎?」的時候,將各種測試案例輸入工具進行驗證,是精通正規表示式的捷徑。