正規表達式(regex)是用於查找、匹配和提取文字的強大模式。它們用於程式設計、資料驗證、尋找替換操作和日誌分析。挑戰在於 regex 語法可能很難寫對。我們免費的 Regex 測試器 讓你可以即時實驗,確切看到你的模式匹配什麼。
你需要什麼
- 你想測試的模式,或需要解決的文字匹配問題
- 網頁瀏覽器(Chrome、Firefox、Safari 或 Edge)
- 不需要帳號或安裝軟體
逐步指南
開啟 Regex 測試器
前往 Regex 測試器 工具。你將看到兩個主要區域:一個用於你的正規表達式模式,另一個用於你想匹配的測試文字。
撰寫你的 regex 模式
在模式欄位中輸入正規表達式。從簡單開始,逐步增加複雜性。例如,從像 hello 這樣的字面文字開始匹配確切的文字,然後用特殊字元精煉你的模式以匹配更廣泛的模式。
輸入測試文字
在測試區域中貼上或輸入範例文字。包含應該匹配和不應該匹配的範例。工具在你輸入時即時高亮顯示所有匹配,讓你立即看到你的模式是否正確運作。
精煉和驗證
調整你的模式並觀察匹配即時更新。在你的測試文字中添加邊緣情況——不尋常的輸入、邊界條件和複雜的格式——確保你的 regex 正確處理它們。滿意後,將模式複製到你的程式碼或工具中。
注意事項 Regex 測試器完全在你的瀏覽器中執行。沒有資料會傳送到任何伺服器,所以你可以安全地針對敏感文字(如電子郵件地址、日誌檔案或個人資料)測試模式。
基本 Regex 語法
| 符號 | 含義 | 範例 |
|---|---|---|
. |
任意單一字元 | h.t 匹配 "hat"、"hit"、"hot" |
* |
前一個的零個或多個 | ab*c 匹配 "ac"、"abc"、"abbc" |
+ |
前一個的一個或多個 | ab+c 匹配 "abc"、"abbc" 但不匹配 "ac" |
? |
前一個的零個或一個 | colou?r 匹配 "color" 和 "colour" |
\d |
任意數字 (0-9) | \d{3} 匹配 "123"、"456" |
\w |
任意字詞字元 | \w+ 匹配 "hello"、"test123" |
\s |
任意空白字元 | hello\sworld 匹配 "hello world" |
^ |
字串開頭 | ^Hello 匹配 "Hello world" |
$ |
字串結尾 | world$ 匹配 "Hello world" |
[abc] |
集合中的任意字元 | [aeiou] 匹配任意母音 |
(...) |
捕獲群組 | (ab)+ 匹配 "ab"、"abab" |
可以嘗試的常見模式
將這些模式複製到 Regex 測試器 中進行實驗。
電子郵件地址
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
匹配標準電子郵件格式,如 user@example.com 和 first.last@company.co.uk。使用有效和無效的電子郵件格式進行測試,查看它如何處理邊緣情況。
網址
https?://[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(/[^\s]*)?
匹配 HTTP 和 HTTPS 網址,如 https://example.com 和 http://site.org/path/page。s? 使 "https" 中的 "s" 可選。
電話號碼(美國格式)
(\+1[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
匹配各種美國電話格式:(555) 123-4567、555-123-4567、+1 555.123.4567 和類似變體。
提示 建立 regex 時,從匹配目標文字的最簡單模式開始,然後一次添加一個約束。試圖一次性寫出複雜的 regex 比在即時觀察匹配更新的同時逐步建立它要難得多。
常見錯誤及如何避免
忘記轉義特殊字元。 像 .、*、+、?、(、)、[、]、{、} 這樣的字元在 regex 中有特殊含義。要字面上匹配它們,在前面加上反斜線:\. 匹配句點,\( 匹配括號。
過度貪婪。 預設情況下,* 和 + 盡可能多地匹配文字。如果你想要最短匹配,在它們後面添加 ?:.*? 盡可能少地匹配。
不錨定你的模式。 沒有 ^ 和 $,像 \d{3} 這樣的模式將匹配字串中任何位置的三個連續數字,包括在較長數字內部。需要匹配整個字串時使用錨點。
重要 Regex 語法在不同的程式語言和工具之間略有不同。在 JavaScript 中有效的模式在 Python 或 PHP 中可能行為不同。始終在你將使用它的語言或環境中測試你的最終模式。
常見問題
什麼是 regex 標誌?
標誌修改模式的應用方式。常見標誌包括 g(全局——尋找所有匹配,而不只是第一個)、i(不區分大小寫)和 m(多行——^ 和 $ 匹配行邊界,而不只是字串邊界)。Regex 測試器讓你切換這些標誌。
我可以使用 regex 進行尋找替換嗎?
可以。大多數文字編輯器和程式語言支援基於 regex 的尋找替換。捕獲群組 (...) 讓你在替換字串中引用匹配的文字。
如何跨多行匹配?
使用 s(dotall)標誌使 . 匹配換行字元,或使用 [\s\S] 作為跨平台替代方案,匹配包括換行在內的任何字元。
後續步驟
現在你可以建立和測試 regex 模式了,試著在你的程式碼、文字編輯器或命令列工具中使用它們。對於其他開發者工具,查看 Cron 解析器 用於排程表達式或 JSON 格式化器 用於處理結構化資料。