DevToolKits.app
工具介紹

給工程師的正規表達式入門:實用模式與基礎知識

深入淺出地解說正規表達式的基本元字元、電子郵件與 URL 判定等實戰模式,以及效能方面的注意事項。

正規表達式基礎示意圖

什麼是正規表達式?

正規表達式 (Regular Expression / Regex) 是一種用來描述字串模式的特殊撰寫方法。在資料驗證、搜尋、取代等工程師的日常工作中,它是不可或缺的工具。

為什麼該學習正規表達式?

  1. 高效的字串操作:無需撰寫複雜的條件判斷,僅需一行程式碼即可定位模式。
  2. 跨語言的通用技能:幾乎支援所有程式語言,包括 JavaScript, Python, PHP, Java 等。
  3. 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) 時的行為變化。

💡 提示:若對「這個模式對嗎?」感到不安,在工具中輸入各種測試案例進行驗證,是進步的最短捷徑。

Related Tools

廣告

廣告