正则表达式学习笔记与常用技巧
2025/6/4大约 2 分钟
正则表达式(Regular Expression, 简称 Regex)是用于字符串匹配和处理的强大工具,广泛应用于文本搜索、数据清洗、表单验证、爬虫开发等场景。
一、基础语法速览
| 符号 | 含义 | 示例 | ||
|---|---|---|---|---|
. | 匹配除换行外的任意字符 | a.b → 匹配 acb、a1b | ||
^ | 匹配字符串开始 | ^abc 匹配 abc123 | ||
$ | 匹配字符串结尾 | abc$ 匹配 123abc | ||
* | 匹配前一个字符 0次或多次 | a* 匹配 ""、a、aaa | ||
+ | 匹配前一个字符 1次或多次 | a+ 匹配 a、aa | ||
? | 匹配前一个字符 0次或1次 | a? 匹配 ""、a | ||
{n} | 恰好重复 n 次 | a{3} 匹配 aaa | ||
{n,} | 至少重复 n 次 | a{2,} 匹配 aa、aaa... | ||
{n,m} | 重复 n 到 m 次 | a{2,4} 匹配 aa、aaa、aaaa | ||
[] | 字符集合,匹配其中任意一个字符 | [abc] 匹配 a、b、c | ||
[^] | 非字符集合,匹配不在其中的字符 | [^abc] 匹配非 a/b/c 的字符 | ||
| ` | ` | 或运算,匹配左右任意一个表达式 | `abc | 123匹配abc或123` |
() | 分组,提取或整体应用量词 | (abc)+ 匹配 abcabc |
二、常用元字符与转义
| 元字符 | 说明 | 示例 |
|---|---|---|
\d | 数字(0-9) | \d+ 匹配一个或多个数字 |
\D | 非数字 | \D+ 匹配一个或多个非数字字符 |
\w | 单词字符(字母数字下划线) | \w+ 匹配变量名、函数名等 |
\W | 非单词字符 | \W+ 匹配符号、空格等 |
\s | 空白字符(空格、Tab等) | \s+ 匹配空白区域 |
\S | 非空白字符 | \S+ 匹配非空格文本 |
\b | 单词边界 | \bword\b 只匹配单词 word |
\\ | 匹配 \ 本身 | \\ 匹配反斜杠 |
三、常见应用场景
✅ 验证手机号(中国大陆)
^1[3-9]\d{9}$✅ 验证邮箱
^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$✅ 提取网页中的链接
https?://[^\s"'>]+✅ 匹配身份证号(15 或 18 位)
(^\d{15}$)|(^\d{17}[\dXx]$)✅ 清理 HTML 标签
<[^>]+>四、分组与提取
分组使用 (),可以通过正则工具或编程语言中提取匹配结果。
(\d{4})-(\d{2})-(\d{2})匹配 2025-06-04,分组结果:
$1: 2025$2: 06$3: 04