正規表達式(Regex)入門指南

開發者

學習正規表達式的基礎知識:如何匹配模式、使用字元類別、量詞和群組來查找和驗證文字。

步驟指南

1

了解 Regex 是什麼

正規表達式(regex)是一種定義搜尋模式的字元序列,用於查找、驗證、提取或替換文字。幾乎所有程式語言和許多文字編輯器都支援正規表達式。

2

匹配字面字元

最簡單的正規表達式就是字面字串。模式 `cat` 可以匹配 "concatenate" 和 "scat" 中的 "cat"。預設情況下,正規表達式區分大小寫:`Cat` 不能匹配 "cat"。

3

使用字元類別

`[abc]` 匹配 a、b 或 c 中的任意一個。`[a-z]` 匹配任意小寫字母。`[0-9]` 匹配任意數字。`[^abc]` 匹配除 a、b、c 之外的任意字元。簡寫:`\d` = 數字,`\w` = 單字字元(字母/數字/_),`\s` = 空白字元。

4

使用量詞

`*` = 零次或多次 | `+` = 一次或多次 | `?` = 零次或一次 | `{3}` = 恰好 3 次 | `{2,5}` = 2 到 5 次。範例:`\d{3}-\d{4}` 匹配 "555-1234" 這樣的電話號碼片段。量詞後加 `?` 變為懶惰模式(盡可能少匹配)。

5

使用錨點和群組

`^` 錨定行首;`$` 錨定行尾。`(abc)` 建立捕獲群組。`(cat|dog)` 匹配 "cat" 或 "dog"。範例:`^\d{5}$` 恰好匹配 5 位 ZIP 郵遞區號,不多不少。

使用免費工具

Regex 測試

常見問題

Q: 如何匹配字面點號或括號?

A: `.`、`*`、`+`、`?`、`(`、`)`、`[`、`]`、`{`、`}`、`^`、`$`、`|`、`\` 等特殊字元需要用反斜線跳脫。使用 `\.` 匹配字面點號,`\(` 匹配字面括號。

Q: 貪婪匹配和懶惰匹配有什麼區別?

A: 貪婪量詞(預設)盡可能多地匹配。懶惰量詞(添加 `?`)盡可能少地匹配。範例:對 "<b>bold</b>" 使用 `<.+>` 會匹配整個字串;使用 `<.+?>` 只匹配 "<b>"。

Q: 在哪裡可以測試我的正規表達式?

A: 使用我們的 Regex 測試工具,輸入模式和測試文字,即時查看高亮顯示的匹配結果,還可以查看捕獲群組和詳細的匹配資訊。

相關指南