正则表达式在线测试:可视化匹配与调试工具
正则表达式是程序员的"瑞士军刀",但语法晦涩、调试困难。一个 . * + 写错位置,匹配结果天差地别。在线正则测试工具能可视化显示匹配过程,是写正则必备的效率神器。本文对比工具 + 教你写好正则。
正则表达式是什么
正则表达式(Regular Expression,简称 Regex)是用特殊语法定义的字符串匹配模式。它能:
- 查找:在文本里找符合规则的子串
- 替换:把符合规则的部分替换成别的内容
- 校验:判断字符串是否符合格式(如邮箱、手机号)
- 提取:从字符串里提取特定部分
正则基础语法速查
字符类
.:任意字符(除换行)\d:数字 [0-9]\w:字母数字下划线 [A-Za-z0-9_]\s:空白字符\D \W \S:上述的反义
量词
*:0 次或多次+:1 次或多次?:0 次或 1 次{n}:n 次{n,}:至少 n 次{n,m}:n 到 m 次
边界
^:字符串开头$:字符串结尾\b:单词边界
分组
(...):捕获分组(?:...):非捕获分组(?=...):正向先行断言(?!...):负向先行断言
修饰符
g:全局匹配i:忽略大小写m:多行模式s:.匹配换行
5 款正则测试工具对比
1. 52tool.net 正则表达式在线测试(综合首选)
工具地址:正则表达式在线测试
- 价格:免费
- 功能:实时匹配、高亮、分组捕获、替换预览
- 特点:浏览器端处理,支持 JavaScript/Python/Java 等多语言模式
2. 52tool.net 正则可视化
工具地址:正则可视化
- 价格:免费
- 功能:把正则转成可视化流程图
- 特点:复杂正则一目了然
3. regex101.com
- 价格:免费
- 特点:解释详细,每个字符都有说明
- 支持:PCRE、Python、JavaScript、Golang
4. Regulex
- 价格:免费
- 特点:可视化流程图,开源
- 限制:仅支持 JavaScript 正则语法
5. Debuggex
- 价格:免费
- 特点:可视化 + 调试模式
- 限制:界面较老
实战教程:写一个邮箱正则
场景
表单需要校验用户输入是否为合法邮箱。
步骤 1:分析邮箱结构
邮箱格式:用户名@域名.顶级域
- 用户名:字母、数字、点、下划线、减号
- @ 符号
- 域名:字母、数字、点、减号
- 顶级域:2-6 个字母
步骤 2:写出初版
\w+@\w+\.\w+
匹配 tom@example.com,但漏掉了 tom.smith@example.com(用户名有点)。
步骤 3:完善
[\w.-]+@[\w.-]+\.\w+
现在能匹配带点的用户名和域名。
步骤 4:用工具测试
进入 52tool 正则测试:
- 正则:
[\w.-]+@[\w.-]+\.\w+ - 测试文本:
tom@example.com
tom.smith@example.co.uk
invalid-email
@example.com
工具高亮显示匹配到的邮箱,标红未匹配的"invalid-email"和"@example.com"。
步骤 5:加边界限制
原正则会匹配 tom@example.com 中的子串,但对 invalid-email 也部分匹配。加边界:
^[\w.-]+@[\w.-]+\.\w+$
^ 和 $ 锁定整个字符串,必须完全匹配。
步骤 6:精炼
顶级域至少 2 位,最长 6 位:
^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$
步骤 7:再测试
test@example.com ✅ 匹配
test.example@x.co ✅ 匹配
test@example.c ❌ 顶级域太短
test@example.company ❌ 顶级域太长(但你也可以放宽到 10)
如果需要更严格的邮箱校验,用 RFC 5322 标准正则(几百字符),但 99% 场景上面这版够用。
实战教程:手机号校验
场景
校验中国大陆手机号。
中国手机号规则
- 11 位数字
- 第一位是 1
- 第二位是 3-9
- 后面 9 位数字
正则
^1[3-9]\d{9}$
测试
13812345678 ✅
12345678901 ❌(第二位是 2,不存在这个号段)
1381234567 ❌(10 位)
138123456789 ❌(12 位)
实战教程:提取 URL
场景
从文本中提取所有 URL。
正则
https?://[\w./-]+
https?:http 或 https://:固定字符[\w./-]+:域名和路径字符
测试
访问 https://52tool.net 学习更多工具
我的博客是 http://blog.example.com/post/123
联系我:mailto:test@test.com(不会匹配,因为不是 http)
匹配结果:
https://52tool.net
http://blog.example.com/post/123
实战教程:分组捕获
场景
从 2026-08-02 提取年、月、日。
正则
(\d{4})-(\d{2})-(\d{2})
三个括号分别是三个捕获组。
在工具中查看
52tool 正则测试 会列出每个捕获组的内容:
- 完整匹配:
2026-08-02 - 组 1:
2026 - 组 2:
08 - 组 3:
02
替换
用 $1、$2、$3 引用捕获组,把日期格式从 YYYY-MM-DD 改成 DD/MM/YYYY:
替换字符串:$3/$2/$1
结果:02/08/2026
20 个常用正则速查
校验类
| 用途 | 正则 |
| 邮箱 | ^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$ |
| 中国手机号 | ^1[3-9]\d{9}$ |
| 身份证号 | ^\d{17}[\dXx]$ |
| 邮编 | ^\d{6}$ |
| IP 地址 | ^(\d{1,3}\.){3}\d{1,3}$ |
| URL | ^https?://[\w./-]+$ |
| QQ 号 | ^[1-9]\d{4,10}$ |
| 中文字符 | ^[\u4e00-\u9fa5]+$ |
| 整数 | ^-?\d+$ |
| 小数 | ^-?\d+\.\d+$ |
提取类
| 用途 | 正则 |
| 所有 URL | https?://[\w./-]+ |
| HTML 标签 | <[^>]+> |
| 图片标签 | |
| 双引号字符串 | "([^"]*)" |
| RGB 颜色 | #[0-9A-Fa-f]{6} |
| 数字 | \d+ |
| 英文单词 | [A-Za-z]+ |
| 链接文字 | ]*>([^<]+) |
| 日期 YYYY-MM-DD | \d{4}-\d{2}-\d{2} |
| 时间 HH:MM:SS | \d{2}:\d{2}:\d{2} |
进阶技巧
1. 贪婪与非贪婪
默认贪婪(匹配最多),加 ? 变非贪婪(匹配最少):
贪婪:<.*> 匹配 "<a><b>" 整体
非贪婪:<.*?> 匹配 "<a>" 和 "<b>" 两个
提取 HTML 标签内容用非贪婪,否则会从第一个 < 匹配到最后一个 >。
2. 先行断言
匹配后面跟着特定内容的字符串:
\d+(?=元)
匹配 100元 中的 100,但不消耗"元"。
3. 后行断言
匹配前面是特定内容的字符串(JavaScript ES2018+ 支持):
(?<=¥)\d+
匹配 ¥100 中的 100。
4. 命名分组
给捕获组起名字,比 $1、$2 更清晰:
(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})
引用:${year}/${month}/${day}
5. 用可视化工具理解
复杂正则看不懂?粘贴到 52tool 正则可视化,自动生成流程图,每个分组、量词、字符类都一目了然。
常见问题解答
Q: 不同语言的正则语法一样吗?
A: 大体相同,但有差异。JavaScript 用 /pattern/flags 字面量,Python 用 re 模块,Java 用 Pattern 类。具体语法(如命名分组、后行断言)支持程度不同。52tool 工具可切换语言模式。
Q: 正则性能问题怎么排查?
A: 复杂正则可能导致"灾难性回溯"(Catastrophic Backtracking),匹配几毫秒变几小时。用 52tool 正则可视化 看流程图,如果有大量嵌套量词(如 (a+)+),可能有问题。改用更具体的字符类或原子组(Atomic Group)。
Q: 正则能解析 HTML 吗?
A: 不能完美解析。HTML 是嵌套结构,正则是正则语言(无法处理嵌套)。简单 HTML(无嵌套)可以提取,复杂 HTML 用 BeautifulSoup、DOM 解析器等工具。
Q: 正则能解析 JSON 吗?
A: 不能。JSON 也是嵌套结构。用 JSON.parse() 等专用解析器。
Q: 怎么记住这么多正则语法?
A: 不用记。常用语法(. \d \w * + ? [] () ^ $)记住即可,复杂的查阅文档。把常用正则存到笔记软件(如 Notion、Obsidian),需要时复制。
Q: 正则中的特殊字符怎么匹配?
A: 用反斜杠转义。匹配 . 用 \.,匹配 * 用 \*,匹配 ? 用 \?。匹配反斜杠本身用 \\。
Q: 修饰符 g、i、m 怎么用?
A: g 全局匹配(找出所有,不只第一个),i 忽略大小写(a 匹配 A),m 多行模式(^ $ 匹配每行开头结尾,而不是整个字符串)。JavaScript 写法:/pattern/gim。
总结
正则表达式是开发者的必备技能,52tool.net 的正则测试工具 + 可视化工具能让你写正则效率翻倍。
写正则的三步流程:
- 分析规则:把要匹配的内容用自然语言描述清楚
- 写出初版:从简单语法开始,逐步完善
- 用工具测试:52tool 正则测试 实时验证
遇到复杂正则看不懂,用 正则可视化 转流程图。把常用正则整理成速查表,下次直接复用。