【常用正則表達式】在日常的編程和文本處理中,正則表達式(Regular Expression)是一種非常強大的工具,用于匹配、查找、替換和提取字符串中的特定模式。無論是進行數據驗證、日志分析還是文本處理,掌握一些常用的正則表達式可以大大提高效率。
以下是一些在實際開發中經常用到的正則表達式,按功能分類整理,并附上簡要說明及示例。
一、基礎匹配
| 正則表達式 | 說明 | 示例 |
| `^a` | 匹配以字母 a 開頭的字符串 | "apple" 匹配,"banana" 不匹配 |
| `a$` | 匹配以字母 a 結尾的字符串 | "cat" 匹配,"dog" 不匹配 |
| `.` | 匹配任意單個字符(除換行符) | "a1"、"b2" 都匹配 |
| `\d` | 匹配數字(0-9) | "123" 匹配,"abc" 不匹配 |
| `\D` | 匹配非數字字符 | "abc" 匹配,"123" 不匹配 |
二、重復與范圍
| 正則表達式 | 說明 | 示例 |
| `a+` | 匹配一個或多個 a | "aa", "aaa" 匹配,"a" 匹配,"b" 不匹配 |
| `a` | 匹配零個或多個 a | ""、"a"、"aa" 都匹配 |
| `a?` | 匹配零個或一個 a | "a" 或 "" 匹配,"aa" 不匹配 |
| `[abc]` | 匹配 a、b 或 c 中的一個 | "a"、"b"、"c" 匹配,"d" 不匹配 |
| `[a-z]` | 匹配小寫字母 | "a" 到 "z" 的字符都匹配 |
| `[A-Z]` | 匹配大寫字母 | "A" 到 "Z" 的字符都匹配 |
| `[0-9]` | 匹配數字 | "0" 到 "9" 的字符都匹配 |
三、邊界與分組
| 正則表達式 | 說明 | 示例 |
| `\b` | 匹配單詞邊界 | "word" 中的 "w" 和 "o" 之間有邊界 |
| `\B` | 匹配非單詞邊界 | 在單詞內部匹配 |
| `(abc)` | 分組匹配,將 abc 視為一個整體 | "abc123" 可匹配到 "abc" |
| `(?=...)` | 正向預查,匹配后面有某內容的字符串 | "test123" 匹配,但不包含 "123" |
| `(?!...)` | 負向預查,匹配后面沒有某內容的字符串 | "test" 匹配,但 "test123" 不匹配 |
四、常見應用場景
| 場景 | 正則表達式 | 用途 |
| 匹配郵箱地址 | `^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$` | 驗證用戶輸入的郵箱格式 |
| 匹配手機號碼(中國大陸) | `^1[3-9]\d{9}$` | 檢查手機號是否符合規范 |
| 匹配IP地址 | `^(\d{1,3}\.){3}\d{1,3}$` | 驗證IP地址格式 |
| 匹配URL | `^(https?:\/\/)?([\da-z\.-]+\.[a-z\.]{2,6})([\/\w \.-])\/?$` | 提取網頁鏈接 |
| 匹配日期(YYYY-MM-DD) | `^\d{4}-\d{2}-\d{2}$` | 驗證日期格式 |
五、注意事項
- 正則表達式在不同語言中可能略有差異,如 Python、JavaScript、Java 等。
- 復雜的正則表達式容易造成性能問題,應盡量避免過度嵌套或使用過于復雜的模式。
- 使用時建議配合測試工具(如 regex101.com)進行調試,確保匹配結果符合預期。
通過合理運用這些正則表達式,可以在實際開發中提高代碼的靈活性和健壯性。當然,正則表達式的學習是一個長期積累的過程,建議結合具體項目不斷實踐和優化。


