正则表达式测试工具 - 在线测试正则匹配/捕获组(免费)
1884 字
9 分钟
正则表达式测试工具 - 在线测试正则匹配/捕获组(免费)
🌟 为什么需要一个”正则测试器”
正则表达式是”写起来快、调起来慢”的典型。一个字符写错,结果就可能完全不同,而且很难一眼看出问题。星点正则测试器让你把正则和测试文本放在一起,输入即看到结果:是否匹配、匹配了几处、每处的内容与位置、捕获组各是什么。
不用再写一段代码跑一遍,也不用在脑子里”模拟执行”。这是学习和调试正则最高效的方式。
🚀 怎么用(详细步骤)
- 打开正则测试器;
- 在正则输入框写表达式(不含两边的
/); - 勾选需要的 Flags(如
g全局、i忽略大小写); - 在下方粘贴测试文本;
- 立刻看到:是否匹配、匹配数量、文本中的高亮、以及匹配详情;
- 点击匹配结果可定位原文,点击原文高亮可查看该处详情。
🔍 你能看到什么
| 结果 | 说明 |
|---|---|
| 是否匹配 | 一眼判断正则是否命中 |
| 匹配数量 | 全局匹配时的命中次数 |
| 匹配内容 | 每一处匹配到的文本 |
| 起始 / 结束位置 | 匹配在原文中的索引 |
| 长度 | 每处匹配的字符数 |
| 捕获组 | ( ) 捕获到的子串,含命名组 |
| 未参与匹配的组 | 值为空的捕获组 |
| 行列位置 | 匹配落在第几行第几列 |
| 错误信息 | 正则不合法时给出原因与位置 |
🧱 正则基础(看这一节就够开始)
字符:匹配”什么”
| 写法 | 含义 |
|---|---|
. | 任意字符(默认不含换行) |
\d | 数字 |
\w | 字母/数字/下划线 |
\s | 空白 |
[abc] | a、b 或 c |
[^abc] | 除 a、b、c 外 |
量词:重复”几次”
| 写法 | 含义 |
|---|---|
* | 0 次或多次 |
+ | 1 次或多次 |
? | 0 或 1 次 |
{n} | 恰好 n 次 |
{n,m} | n 到 m 次 |
*? +? | 懒惰匹配(尽量少) |
位置与分组
| 写法 | 含义 |
|---|---|
^ / $ | 行/串首尾 |
\b | 单词边界 |
( ) | 捕获组 |
(?: ) | 非捕获组 |
(?<name> ) | 命名捕获组 |
| 竖线 | 或(分支) |
🏁 Flags 快速说明
| Flag | 作用 |
|---|---|
g | 全局匹配(找到所有匹配) |
i | 忽略大小写 |
m | 多行模式(^ $ 匹配每行首尾) |
s | DotAll(. 匹配换行符) |
u | Unicode 模式 |
y | 粘性匹配 |
💡 十个实战示例
1. 匹配邮箱
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}粘贴几行邮箱,即可看到每一处命中与捕获组。
2. 匹配手机号(中国大陆)
^1[3-9]\d{9}$3. 匹配日期并取分组
(\d{4})-(\d{2})-(\d{2})捕获组分别得到年、月、日。
4. 忽略大小写
正则 hello + i,则 Hello、HELLO 都命中。
5. 匹配 URL
https?://[^\s]+6. 匹配 IP 地址(简版)
\b\d{1,3}(\.\d{1,3}){3}\b7. 匹配中文
[\u4e00-\u9fa5]+8. 匹配重复单词
\b(\w+)\s+\1\b\1 反向引用,要求与组 1 相同。
9. 密码强度(前瞻)
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,20}$10. 提取引号内的内容
"([^"]*)"⚠️ 常见错误与排查
| 现象 | 可能原因 | 处理 |
|---|---|---|
| 只匹配第一处 | 忘了 g | 勾选全局 |
| 跨行匹配失败 | . 不含换行 | 加 s 或改用 [\s\S] |
^$ 只匹配整段 | 未开多行 | 加 m |
| 匹配太多 | 贪婪 .* | 用 .*? |
| 特殊字符失效 | 未转义 | \. \+ \( |
| 中文/emoji 异常 | 未开 Unicode | 加 u |
| 结果忽多忽少 | 带 g 的正则有 lastIndex 状态 | 新建正则或重置 |
更系统的排查用正则调试器。
⚡ 性能提醒
如果文本一长就卡,可能是灾难性回溯。典型危险写法:(a+)+、(a|aa)+、(\w+\s?)*。上线前用性能与安全检测,详见 ReDoS 是什么。
🔧 常见问题(FAQ)
需要注册吗?
不需要,打开即用,全部免费。测试文本会上传吗?
不会。匹配在浏览器本地执行,文本不离开你的设备。支持 Python / Java 的正则吗?
测试器执行的是浏览器(JavaScript)正则。其他语言的差异请用[多语言引擎](https://www.xingdian.net/app/regex/engines/)查看写法与兼容性。匹配结果可以复制吗?
可以,匹配内容与结果支持一键复制。怎么知道捕获组对应哪一段?
结果区会按组编号列出内容;用[正则解释器](https://www.xingdian.net/app/regex/explain/)可进一步理解分组含义。为什么同一个正则第二次结果不对?
多半是带 `g` 的正则对象 `lastIndex` 未重置。新建正则对象或重置 `lastIndex` 即可。能匹配换行符吗?
开启 `s`(DotAll)让 `.` 匹配换行,或用 `[\s\S]`。能测试替换结果吗?
测试器专注匹配;替换用[正则替换](https://www.xingdian.net/app/regex/replace/)。🧠 正则引擎是怎么工作的
理解引擎原理,能解释很多”为什么匹配成这样”的现象。
大多数语言使用回溯型 NFA 引擎:从左到右尝试匹配,遇到量词或分支时,会先”贪婪”地尽量多匹配,若后续失败再回溯退一步重试。
例如 a+ 对 aaa:
- 先吃掉
aaa; - 若后面还要匹配别的东西失败,就退回一个
a重试。
这就是为什么:
- 贪婪量词”尽量多”;
- 懒惰量词(
+?)“尽量少”; - 某些结构会回溯爆炸(见 ReDoS)。
而 Go 的 RE2、部分工具使用自动机(DFA)引擎,不做回溯,速度快但功能受限(不支持反向引用等)。
🔬 更多实战示例
11. 匹配十六进制颜色
#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b12. 匹配版本号
^\d+\.\d+\.\d+$13. 匹配带千分位的金额
^\d{1,3}(,\d{3})*(\.\d{1,2})?$14. 匹配空白行
^\s*$15. 提取方括号内容
\[([^\]]+)\]16. 匹配 HTML 标签
<([a-zA-Z][a-zA-Z0-9]*)\b[^>]*>17. 匹配日期时间
^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}(:\d{2})?$18. 匹配连续重复字符
(.)\1{2,}19. 匹配中文姓名
^[\u4e00-\u9fa5]{2,4}$20. 匹配不含空格的行
^\S+$把这些贴进正则测试器逐个验证,是最快的练习方式。
🧪 用测试器学正则的 5 个练习
- 改一个字符看变化:把
\d{4}改成\d{2,4},观察匹配数量变化; - 切换贪婪/懒惰:把
.*改成.*?,看结果差异; - 加/去锚点:对比
\d+与^\d+$; - 开/关 Flags:同一正则加
i、m、s看效果; - 看捕获组:给正则加括号,观察结果区组的编号与内容。
🧭 更多常见问题
能保存我写好的正则吗?
工具默认不上传、不保存;建议把正则复制到自己的笔记或代码里留存。高亮了但捕获组是空的,为什么?
该组未参与匹配(如分支没走到),或括号写在了可选部分里。能测试超大文本吗?
常见规模没问题;超大文本建议先排除危险正则,避免回溯卡顿。匹配结果能导出吗?
可以复制匹配内容与结果;需要结构化提取用[正则提取](https://www.xingdian.net/app/regex/extract/)。为什么中文匹配结果不对?
检查是否开了 `u`(Unicode);中文范围建议用 `[\u4e00-\u9fa5]` 或 `\p{Script=Han}`。正则里的特殊符号打不出来怎么办?
在输入框正常输入即可;需要匹配符号本身时记得加反斜杠转义。💬 总结
正则测试的核心是”即时反馈”:写进去,马上知道对不对、匹配了哪些、捕获组是什么。需要现成的正则,可以看手机号正则和邮箱正则怎么写;想系统学,看正则表达式教程。
立即体验:访问 正则测试器
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
最后更新于 2026-09-13,距今已过 32 天
部分内容可能已过时
相关文章 智能推荐
1
正则替换怎么用 - 在线正则表达式批量替换工具
正则工具 正则替换怎么用?在线正则表达式替换工具支持 $1、$&、$<name> 等替换引用,实时显示替换前后文本与替换次数。含日期改写、去空格、加前缀、键值重排等 10+ 场景示例与 FAQ,浏览器本地处理。
2
星点正则工具完整指南 - 14个在线正则表达式工具导航(2026)
正则工具 星点正则工具系列完整指南:正则测试、替换、提取、生成、解释、可视化、多引擎、ReDoS 检测等 14 个在线正则表达式工具一站式导航。含正则语法速览、按场景选工具、常见工作流与 FAQ,全部浏览器本地处理不上传。
3
正则表达式生成器 - 按条件或示例在线生成正则
正则工具 不会写正则?用正则生成器按条件生成:字符类型、长度、前缀后缀、数字范围、固定结构;也能从示例反推候选正则。在线免费,浏览器本地处理。
4
正则表达式转代码 - 转 JavaScript/Python/Java/Go/PHP
正则工具 正则怎么用到代码里?本文给出 JavaScript、Python、Java、Go、PHP、C# 的写法模板(含转义、Flags、命名组),并介绍在线正则转代码工具,一键得到可复制的代码示例。
5
正则命名捕获组怎么用 - (?<name>) 语法与实例
正则工具 正则命名捕获组 (?<name>...) 怎么用?本文讲清命名组与普通组的区别、各语言写法、提取与替换中的引用方式,并用日期、日志解析等实例说明。附在线正则测试工具。
随机文章 随机推荐