正则测试器 - 在线测试 Regex 匹配结果和捕获分组
在线测试正则表达式匹配结果、捕获分组和常用标志,适合文本提取、表单校验、日志分析和规则调试。
功能特点
- 实时测试正则表达式对文本的匹配结果
- 查看捕获分组,辅助排查括号和命名分组逻辑
- 支持常见正则标志和多行文本匹配场景
- 区分完整匹配、部分匹配、捕获组和正则标志,避免把一次样本通过当作业务校验完成
- 适合验证邮箱、URL、日志字段和自定义文本规则
使用方法
- 输入正则表达式和需要匹配的测试文本
- 调整标志、分组或表达式结构并查看匹配结果
- 复制确认后的正则用于前端校验、后端解析或日志处理
示例输入
验证邮箱格式
正则:^[^\s@]+@[^\s@]+\.[^\s@]+$ 测试:alice@example.com适合快速验证匹配结果和捕获分组,但不能证明邮箱真实存在。
提取日志状态码
正则:\b(?:200|201|400|401|404|500)\b 文本:GET /api 500 32ms适合确认匹配范围和日志中多个状态码的提取行为。
检查反例
正则:^\d{4}-\d{2}-\d{2}$ 反例:2026-7-1、2026-13-40适合区分格式匹配和真实日期合法性。
捕获组与全局匹配
正则:(?<key>[A-Za-z_]+)=(?<value>[^,]+) 文本:name=Alice,role=admin适合核对命名捕获组、多个匹配结果和分隔符边界;不同语言的命名组语法仍需迁移验证。
忽略大小写标志
正则:^error$ 标志:i 文本:Error适合确认 i 标志对大小写的影响;当前页面还提供 g、m、u 标志,结果仍以 JavaScript RegExp 为准。
示例输出
验证邮箱格式
匹配:alice@example.com;捕获组:无提取日志状态码
匹配:500;位置:9–12检查反例
2026-7-1:不匹配;2026-13-40:匹配格式但日期无效捕获组与全局匹配
2 次匹配:key=name,value=Alice;key=role,value=admin;命名捕获组需按目标引擎确认忽略大小写标志
i 标志开启:匹配 Error @ 0;g 不改变单次匹配结果
常见错误
- 正则测试器只验证当前表达式对样本文本的匹配,不会自动判断规则是否符合业务定义。
- 缺少 ^ 和 $ 可能只匹配字符串中的一段,导致表单校验放过前后多余内容。
- JavaScript、Python、Java 和 PCRE 的转义、命名组和 Unicode 行为可能不同。
- 通过一个正例不能证明规则覆盖业务边界,至少要加入反例、空值、超长文本和 Unicode 样本。
- 复杂回溯表达式可能造成 ReDoS 风险,测试通过不代表生产性能安全。
适用场景
- 已有正则匹配测试
- 日志字段提取
- 表单规则反例验证
- 捕获组结果检查
实操检查
先用反例确认匹配边界
测试器在当前浏览器 JavaScript RegExp 中运行,并展示匹配位置和捕获组;每条规则至少要有正例、反例、空值、超长和 Unicode 样本。
迁移前固定引擎和标志
g、i、m、u 会改变当前匹配行为,但复制到 Python、Java、PCRE 或 RE2 后语法可能不同;上线前应在目标运行时重跑同一批样本并检查最坏耗时。
页面专属核验
使用前与操作中
- 先明确目标引擎、flags、整串匹配还是局部提取,再设计表达式和样本。
- 同时准备正例、反例、空值、超长文本和 Unicode 样本,不要只根据一个成功样本判断。
- 用户输入会进入服务端正则时,提前考虑长度上限、超时和高回溯结构。
结果出来后
- 匹配结果、捕获组和全局次数是否符合业务预期,而不是只显示一次成功?
- 日期、邮箱、URL 或权限等业务有效性是否已经由专门逻辑再次校验?
- 表达式在目标语言的字符串转义、命名组、Unicode 和性能行为是否重新测试?
相关工具
工具边界
- 测试结果依赖当前正则引擎和样本,不代表其他语言运行时完全相同。
- 正则不能替代解析器、业务校验或安全审计。
- 大文本和高回溯表达式可能影响浏览器性能。
与相似工具的区别
- 正则校验:通用测试器接受任意表达式和文本并显示捕获;Validator 面向预设字段规则的正反例验收。
安全与兼容性
- 匹配在当前浏览器的 JavaScript 引擎执行,复制到 PCRE、Python、Java 或 RE2 后语法和 Unicode 结果可能不同。
- 对用户可控长文本应限制长度和执行耗时;灾难性回溯可阻塞浏览器或后端线程。
下一步排查
- 先用正例、反例和边界样本验证匹配范围。
- 跨语言使用时转到 Regex Flavor 检查语法差异。
- 上线前用 Regex Benchmark 检查耗时和潜在回溯风险。
常见问题
正则测试器和 Regex Generator 有什么区别?
测试器需要你提供已有正则并验证样本;Generator 从自然语言需求生成表达式,生成结果仍需回到测试器验证。
匹配成功就代表数据有效吗?
不一定。正则通常只验证文本形状,日期、域名、邮箱可用性和业务权限仍需要专门逻辑检查。
为什么匹配结果和预期少了一部分?
先检查是否只执行了首个匹配、是否启用全局或多行标志、锚点和捕获组边界,再确认输入中是否包含换行、Unicode 或不可见字符。